Matplotlib詳解
-
- 1.搭建Matplotlib環境
-
-
- 1.1.使用pip下載下傳Matplotlib
- 1.2.使用easy_install下載下傳Matplotlib
- 1.3.在網站上下載下傳Matplotlib
-
- 2.繪制兩個點
- 3.繪制折線圖
-
-
- 3.1.普通折線圖
- 3.2.調整線條粗細
-
- 4.在圖中添加注釋
- 5.修改表的坐标
- 6.繪制兩條線條
- 7.線條、顔色和标記
-
-
- 7.1.常用的顔色
- 7.2.常用的線條
- 7.3.标記
-
- 8.圖例
1.搭建Matplotlib環境
1.1.使用pip下載下傳Matplotlib
Matplotlib可以使用pip下載下傳:
pip install matplotlib
下載下傳過慢可以使用國内鏡像:
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
還可以使用:
python -m pip install matplotlib
如果第三種下載下傳方式報錯,說明你還沒有将python設為環境變量,可以使用第1、2種方法替代。
1.2.使用easy_install下載下傳Matplotlib
easy_install matplotlib
1.3.在網站上下載下傳Matplotlib
上述兩種方法都比較簡單,但是如果在使用過程中,可能會不支援python的部分版本,這時我們可以去 PyPi 下載下傳,點傳入連結接後會看到matplotlib·PyPi頁面:
注意 :以上連接配接如無法打開,請在浏覽器裡輸入網址https://pypi.org/project/matplotlib
點選左下角的 Download files 會看到右側有一些版本号:
在這裡面找到你需要的版本。
下載下傳完成後打開cmd,輸入:
python -m pip install --user 版本号
上述的版本号是你在下載下傳Matplotlib的時候的版本号,比如說我下的是“matplotlib-3.2.2-cp39-cp39-win_amd64.whl”,那麼我就需要輸入:
python -m pip install --user matplotlib-3.2.2-cp39-cp39-win_amd64.whl
2.繪制兩個點
我們可以使用scatter()函數來繪制兩個點,它的參數是點坐标的位置(x和y),傳入的是一個清單。
代碼部分
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
x1 = [1, 2] # 設定第一個點的坐标,x坐标是2,y坐标是1
y2 = [2, 4] # 設定第二個點的坐标,x坐标是1,y坐标是2
plt.scatter(x1, y2) # 繪制散點圖
plt.show() # 顯示繪圖
運作結果
3.繪制折線圖
通過plot()函數繪制折線圖,參數是折線圖每一個點所在的y坐标
3.1.普通折線圖
代碼部分
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.plot([8, 7, 9 ,3, 5, 3, 7, 9]) # 繪制折線圖
plt.show() # 顯示繪圖
運作結果
3.2.調整線條粗細
通過plot()的linewidth參數來調整線條粗細:
代碼部分
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.plot([8, 7, 9 ,3, 5, 3, 7, 9], linewidth = 10) # 繪制折線圖
plt.show() # 顯示繪圖
運作結果
4.在圖中添加注釋
title()函數添加标題,xlabel()函數,ylabel()函數。以上三個函數中fontsize參數可以調整字型
代碼部分
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.plot([50, 70, 90 ,80, 55, 39, 79, 90], linewidth = 10) # 繪制折線圖
plt.title("title", fontsize = 25)
plt.xlabel("y", fontsize = 15)
plt.ylabel("x", fontsize = 15)
plt.show() # 顯示繪圖
運作結果
注意:如果需要顯示中文字型,需要加上
plt.rcParams['font.sans-serif']=['SimHei'] #這裡使用的是雅黑字型
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
運作結果
5.修改表的坐标
可以在plot函數線條坐标的前面傳入一個清單,代表x坐标的值:
代碼部分
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
[50, 70, 90 ,80, 55, 39, 79, 90], linewidth = 10) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)
plt.show() # 顯示繪圖
運作結果
6.繪制兩條線條
代碼部分
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
[50, 70, 90 ,80, 55, 39, 79, 90],
["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
[40, 80, 60, 80, 70, 20, 90, 50],
linewidth = 10,) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)
plt.show() # 顯示繪圖
運作結果
7.線條、顔色和标記
7.1.常用的顔色
如果需要設定顔色,可以在plot函數裡面設定,常用的顔色有:
顔色字元 | 顔色說明 |
---|---|
b | 藍色 |
c | 青色 |
k | 黑色 |
r | 紅色 |
y | 黃色 |
g | 綠色 |
執行個體
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
[50, 70, 90 ,80, 55, 39, 79, 90],"b",
["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
[40, 80, 60, 80, 70, 20, 90, 50],"g",
linewidth = 10,) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)
plt.show() # 顯示繪圖
運作結果
7.2.常用的線條
注意:此處是和顔色寫在一個字元串内,寫在顔色後面
字元 | 說明 |
---|---|
- | 直線 |
– | 虛線(兩個-) |
-. | 虛點線 |
: | 點線 |
執行個體
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
[50, 70, 90 ,80, 55, 39, 79, 90],"b-.",
["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
[40, 80, 60, 80, 70, 20, 90, 50],"g--",
linewidth = 10,) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)
plt.show() # 顯示繪圖
運作結果
7.3.标記
注意:标記是寫線上條後面
符号 | 說明 |
---|---|
. | 點标記 |
o | 圓标記 |
s | 方形标記 |
p | 五角星标記 |
+ | 加号标記 |
- | 減号标記 |
執行個體
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
[50, 70, 90 ,70, 55, 39, 79, 90],"-s",
["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
[40, 80, 60, 80, 70, 20, 90, 50],"-o",
linewidth = 3,) # 繪制折線圖
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)
plt.show() # 顯示繪圖
運作結果
8.圖例
雖然前面建立的清單已經很好了,但是缺乏每一根線條的意義是以我們需要建立圖例:
代碼部分
import matplotlib.pyplot as plt # 引入子產品,并縮寫為plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負号
line1 = plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"] ,
[50, 90, 90 ,70, 55, 39, 79, 90],"-s", label = "1号超市") # 繪制折線圖
line2 = plt.plot(["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月"],
[40, 80, 60, 80, 70, 20, 90, 50],"-o", label = "2号超市")
plt.title("銷量", fontsize = 25)
plt.xlabel("月份", fontsize = 15)
plt.ylabel("銷量/箱", fontsize = 15)
plt.legend(loc = "best")
plt.show() # 顯示繪圖
執行結果
其中它的loc參數是指圖例的位置,best是圖中最好的位置,也就是沒有值的位置,loc參數的可選值如下:
可選值 | 說明 |
---|---|
best | 最好的位置 |
upper right | 右上角 |
upper left | 左上角 |
lower left | 左下角 |
lower right | 右下角 |
center left | 左側 |
center right | 右側 |
lower center | 下面 |
upper center | 上面 |
center | 畫面正中間 |