天天看點

python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

一、安裝matplotlib

1)由于已安裝anaconda,可直接打開anaconda prompt,再用指令pip install matplotlib進行安裝,因鏡像問題,可能較慢,建議第2種方式。

2)通路https://pypi.org/project/matplotlib/#files,并查找與你使用的Python版本比對的wheel檔案(擴充名為.whl的檔案),比如與python3.9版本相應的matplotlib-3.5.1-cp39-cp39-win_amd64.whl放在目錄G:\develop\python下,(或者你自己所建目錄)

打開anaconda prompt,再用指令pip install G:\develop\python\matplotlib-3.5.1-cp39-cp39-win_amd64.whl(注意目錄要保持一緻) 執行完成即可。

python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

 二、測試 matplotlib

打開anaconda prompt 先輸入python,再輸入 import matplotlib,如圖所示,沒有出現任何錯誤消息,就說明系統安裝成功。

python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

三、 繪制簡單的折線

import matplotlib.pyplot as plt   #導入子產品matplotlib.pyplot,并重新命名為plt

squares = [1,4,9,16,25,36,49,64,81,100]  #定義一個數組

plt.plot(squares, linewidth=5)# 設定圖表标題,并給坐标軸加上标簽和 參數 linewidth 決定了繪制的線條的粗細
plt.title("Square Numbers", fontsize=24)#設定标題和字型大小
plt.xlabel("Value", fontsize=14)  #  x軸标簽,和字型大小
plt.ylabel("Square of Value", fontsize=14)  #  y軸标簽,和字型大小
plt.tick_params(axis='both', labelsize=14) # 設定刻度标記的大小,函數 tick_params() 設定刻度的樣式
plt.show()      

這樣就完成一個簡單的折線圖,運作效果如下:

python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

注:如果運作過程中,出現圖中紅色方框所示警告,需要重新設定spyder中Tools,如下圖所示:

python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

 四、使用 scatter() 繪制散點圖并設定其樣式

1、要繪制單個點

可使用函數 scatter() ,并向它傳遞一對x和y坐标,它将在指定位置繪制一個點:

import matplotlib.pyplot as plt   #導入子產品matplotlib.pyplot,并重新命名為plt

plt.scatter(2, 4, s=200) #調用了scatter(),并使用實參s設定了繪制圖形時使用的點的尺寸,位置為2,4

plt.title("Square Numbers", fontsize=24) # 設定圖表标題并給坐标軸加上标簽
plt.xlabel("Value", fontsize=14)
plt.ylabel("Square of Value", fontsize=14)
# 設定刻度标記的大小
plt.tick_params(axis='both', which='major', labelsize=14)
plt.show()      
python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

2、要繪制系列點

繪制系列點,隻需要給出系列點的坐标即可。我們将上述代碼中plt.scatter(2, 4, s=200)的2,4分别用兩個數列代替。

import matplotlib.pyplot as plt   #導入子產品matplotlib.pyplot,并重新命名為plt

x_values = [1, 2, 3, 4, 5]  #X軸的數列
y_values = [1, 3,6, 9, 12]  #y軸的數列      
plt.scatter(x_values, y_values, s=100) #調用了scatter(),并使用實參s設定了繪制圖形時使用的點的尺寸  
plt.title(" series Numbers", fontsize=24) # 設定圖表标題并給坐标軸加上标簽 
plt.xlabel("Value", fontsize=14) 
plt.ylabel("Value", fontsize=14) # 設定刻度标記的大小 
plt.tick_params(axis='both', which='major', labelsize=14) 
plt.show()      

運作結果如下:

python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

 3、自動計算資料

像上述手動輸入點數,或數列,都是比較慢的處理方式 ,下面用for循環來替代手工輸入。

可以先将x_values定義為一個數列,數值在一定的範圍,比如1-1000,而對應的y_values也是一個數列,按一定的方式(函數)産生。于是,可以将上述代碼修改為如下:

import matplotlib.pyplot as plt   #導入子產品matplotlib.pyplot,并重新命名為plt

x_values = list(range(1, 1001))  #定義一個1-1000的數列,
y_values = [x**2 for x in x_values]  #定義Y值的生成方式。

plt.scatter(x_values, y_values, s=4) #調用了scatter(),并使用實參s設定了繪制圖形時使用的點的尺寸

plt.title(" series Numbers", fontsize=24) # 設定圖表标題并給坐标軸加上标簽
plt.xlabel("Value", fontsize=14)
plt.ylabel("Value", fontsize=14)
# 設定刻度标記的大小
plt.tick_params(axis='both', which='major', labelsize=10)
plt.axis([1,1100,1,1100000]) #注意一下axis的參數
plt.show()      

運作結果如下:

python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

matplotlib中的點預設為藍色點和黑色輪廓,如上述三圖所示,其中最後一圖因為點較多,且連在一起,像是一條曲線,為差別不同的點,可以對點分别不同的顔色。

隻需再配置幾個參數 ,就可以删除黑色輪廓,和修改點的顔色。

plt.scatter(x_values, y_values, edgecolor='none', s=40),其中edgecolor='none'表示将黑色輪廓删除

修改資料點的顔色,可向 scatter() 傳遞參數 c ,并将其設定為要使用的顔色的名稱,如下:

plt.scatter(x_values, y_values, c='red', edgecolor='none', s=40) # 将顔色修改為紅色。

1、顔色映射(colormap)

顔色映射是一系列顔色,從起始顔色漸變到結束顔色。在可視化中,顔色映射用于突出資料的規律

plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Blues,edgecolor='none', s=40) 
#調用了scatter()參數 c 設定成了一個y值清單,并使用參數 cmap 告訴 pyplot 使用哪個顔色映射,
# 将y值較小的點顯示為淺藍色,并将y值較大的點顯示為深藍色

      

具體運作效果如下:

python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

注意,要了解所有相關顔色的映射,可通路官網  http://matplotlib.org/,單擊Examples,向下滾動到Color Examples,再單擊colormaps_reference進行參考。

4、自動儲存圖表

方法 plt.show() 是顯示圖表

要讓程式自動将圖表儲存到檔案中,可調用 plt.savefig() 方法

plt.savefig('scatter.png', bbox_inches='tight')  #儲存為scatter.png的圖檔檔案      
python資料可視化-matplotlib入門(1)--安裝及繪制簡單的曲線

預告:下一篇将通過随機函數,類、數列、matplotlib等綜合應用,生成一個随機圖形。