使用scatter繪制散點圖并設定其樣式
繪制單個點
要繪制單個點,可以使用函式scatter(),并向它傳遞一對x和y坐標,它將在指定位置繪制一個點:
import matplotlib.pyplot as plt
plt.scatter(2,4)
plt.show()
下面來設定輸出的樣式,使其更加的有趣:添加標題,給軸加上標簽,并確保所有文本都能看清:
import matplotlib.pyplot as plt
plt.scatter(2,4, s=200)
# 設定圖表標題并給坐標軸加上標簽
plt.title('Square Numbers', fontsize=24)
plt.xlabel('Value', fontsize=24)
plt.ylabel('Square of Value', fontsize=24)
# 設定刻度標記大小
plt.tick_params(axis='both', which='major', labelsize=24)
plt.show()
我們呼叫了scatter(),并使用s設定了繪制圖形時使用的點的尺寸,在此時運行代碼,將看到如下圖表:

使用scatter繪制一系列點
要繪制一系列的點,可向scatter()傳遞兩個分別包含x值和y值的串列,如下:
import matplotlib.pyplot as plt
x_values = [1, 2, 3, 4, 5]
y_values = [1, 4, 9, 16, 25]
plt.scatter(x_values, y_values, s=100)
# 設定圖表標題并給坐標軸加上標簽
plt.title('Square Numbers', fontsize=24)
plt.xlabel('Value', fontsize=24)
plt.ylabel('Square of Value', fontsize=24)
# 設定刻度標記大小
plt.tick_params(axis='both', which='major', labelsize=24)
plt.show()
串列x_values包含要計算其平方根的值,串列y_values包含前述每個數字的平方值,將這些值傳入scatter(),matplotlib依次從每個串列中讀取一個值來繪制一個點,最終結果如下圖所示:

自動計算資料
手工計算串列要包含的資料可能效率低下,需要繪制的點很多時尤其如此,可以不必手工計算包含坐標的串列,而讓python回圈來代替我們完成這種計算,下面繪制1000個點代碼:
import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values, y_values, s=40) # 設定顏色,線條粗細,x軸,y軸的值
plt.title('Square Numbers', fontsize=24)
plt.xlabel('Value', fontsize=24)
plt.ylabel('Square of Value', fontsize=24)
plt.tick_params(axis='both', which='major', labelsize=24)
# 設定每個坐標軸的取值范圍
plt.axis([0, 1100, 0, 1100000])
plt.show()
我們首先創建了一個包含x值的串列,其中包含數字1~1000.接下來是一個生成y值的串列,它遍歷x值,計算其平方值,并將結果存盤到串列y_values中,然后,將輸入串列和輸出串列傳遞給scatter(),
由于資料集較大,我們將點設定的比較小,并使用函式axis()指定了每個坐標軸的取值范圍,函式axis()要求提供四個值,x和y坐標軸的最小值和最大值,在這里,我們將x軸取值范圍設定為0-1100,y軸設定為0-1100000,結果如下圖所示:

要修改資料點的顏色,可以向scatter()傳遞引數,并將其設定為要使用的顏色的名稱,如下:
plt.scatter(x_values, y_values, c='Blue', cmap=plt.cm.Reds, edgecolors='none', s=40)
還可以使用RGB顏色模式進行自定義顏色,要指定自定義顏色,可傳遞引數,將其設定為一個元組,其中包含0-1之間的小數值,它們分別代表紅色、綠色和藍色分量,例如下面代碼行創建一個由淡藍色組成的散點圖:
plt.scatter(x_values, y_values, c=(0, 0, 0.8), cmap=plt.cm.Reds, edgecolors='none', s=40)
值越接近0,指定的顏色越深,值越接近1,指定的顏色越淺,
使用顏色映射
顏色映射是一系列顏色,它們從起始顏色一直漸變到結束顏色,在可視化中,顏色映射用于突出資料的規律,例如,你可以用顏色淺來顯示較小的值,并使用較深的顏色顯示較大的值,下面演示了如何根據每個點的y值來設定其顏色,
import matplotlib.pyplot as plt
x_values = list(range(1, 1001))
y_values = [x**2 for x in x_values]
plt.scatter(x_values, y_values, c=y_values, cmap=plt.cm.Reds, edgecolors='none', s=40) # 設定顏色,線條粗細,x軸,y軸的值
plt.title('Square Numbers', fontsize=24)
plt.xlabel('Value', fontsize=24)
plt.ylabel('Square of Value', fontsize=24)
plt.tick_params(axis='both', which='major', labelsize=24)
# 設定每個坐標軸的取值范圍
plt.axis([0, 1100, 0, 1100000])
plt.show()
我們將引數c設定成了一個y值串列,并使用引數cmap告訴pyplot使用哪個顏色映射,這些代碼將y值較小的顯示為淺紅色,y值較大的深紅色,生成圖形如下圖所示:

自動保存圖表
要讓程式自動保存圖表到檔案中,可以將plt.show()的呼叫換成plt.savefig()的呼叫
plt.savefig('squares_plot.png', bbox_inches='tight')
第一個引數指定要以什么樣的檔案名保存引數,這個檔案將存盤到當前代碼所在的目錄下,第二個引數指定將圖表多余的空白區域裁剪掉,如果要保留圖表周圍多余的空白區域,可以省略這個引數,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/248096.html
標籤:python
下一篇:Python基礎(下篇)
