Python matplotlib 繪制散點圖詳解建議收藏
前言
我們在matplotlib模塊學習中,發現有常用的反映數據變化的折線圖,對比數據類型差異的柱狀圖和反應數據頻率分佈情況的直方圖。
往期內容速看
Python用 matplotlib 繪制柱狀圖
Python matplotlib底層原理解析
其實在數據統計圖表中,有一種圖表是散列點分佈在坐標中,反應數據隨著自變量變化的趨勢。
本期,我們將詳細學習matplotlib 繪制散點圖相關屬性的學習,let’s go~
1. 散點圖概述
什麼是散點圖?
- 散點圖用於在水平軸和垂直軸上繪制數據點,數據以點狀分佈在左標系中
- 散點圖表示因變量隨著自變量而變化的大致趨勢
- 散點圖由多個左坐標點構成,考察坐標點的分佈,判斷是否存在某種關聯或者分佈模式
- 對於不同類別的點,則由圖表中不同形狀或顏色的標記符表示
- 散點圖主要分為散點圖矩陣、三維散點圖、ArcGIS散點圖
散點圖使用場景
- 散點圖用於比較跨類別的聚合數據
- 散點圖用於分析數據線性、多項式趨勢情況
- 散點圖用於四象限分析
- 散點圖用於找到數據趨勢公式
- 散點圖可以為後期精確的圖標進行輔助
繪制散點圖步驟
- 導入matplotlib.pyplot模塊
- 準備數據,可以使用numpy/pandas整理數據
- 調用pyplot.scatter()繪制散點圖
案例展示
本次案例我們將分析某產品不同定價銷售額分佈情況
案例需要準備兩組數據x和y軸,其中x,y軸的數據量要保持一致
x_value = np.random.randint(50,100,50) y_value = np.random.randint(500,1000,50)
繪制散點
import matplotlib.pyplot as plt import numpy as np plt.rcParams["font.sans-serif"]=['SimHei'] plt.rcParams["axes.unicode_minus"]=False x_value = np.random.randint(50,100,50) y_value = np.random.randint(500,1000,50) plt.scatter(x_value,y_value) plt.title("data analyze") plt.xlabel("銷售價格") plt.ylabel("銷售額") plt.show()
2. 散點圖屬性
設置散點大小
關鍵字:s
傳入數據類型為list或者數字,默認為20
設置散點顏色
關鍵字:c
默認顏色為藍色
取值范圍
- 表示顏色的英文單詞:如紅色”red”
- 表示顏色單詞的簡稱如:紅色”r”,黃色”y”
- RGB格式:十六進制格式如”#88c999″;(r,g,b)元組形式
- 也可以傳入顏色列表
設置散點樣式
關鍵字:marker
系統默認為’o’小圓圈
取值還可以取:(‘o’, ‘v’, ‘^’, ‘<‘, ‘>’, ‘8’, ‘s’, ‘p’, ‘*’, ‘h’, ‘H’, ‘D’, ‘d’, ‘P’, ‘X’)
設置透明度
關鍵字:alpha
取值范圍:0~1
設置散點邊框
關鍵字: edgecolor
默認為face
取值選項:
- “face”|”none”
- 表示顏色的英文單詞、簡寫或者rgb
我們結合上一節的案例,設置散點大小,散點邊框為粉色,散點顏色為#88c999
size = (20*np.random.rand(50))**2 plt.scatter(x_value,y_value,s=area,c="#88c999",edgecolors="pink"
3. 添加折線散點圖
我們在查看散點圖時,有時候會借助折線圖來輔助分析。我們繼續拿第一節的數據來分析。
我們使用np.random.rand()來生成100個隨機數據
x_value = 100*np.random.rand(100) y_value = 100*np.random.rand(100)
需要借助我們高中的數學公司如sin\cos函數等(高中數學都還給老師瞭)
使用pyplot.plot()方法來繪制曲線圖
r0 = 80 plt.scatter(x_value,y_value,c="hotpink",edgecolors="blue") the = np.arange(0,np.pi/2, 0.01) plt.plot(r0*np.cos(the),r0*np.sin(the))
4. 多類型散點圖
我們在觀察數據的時候,會同時比較多個類型數據,因此我們可以通過顏色或者散點樣式來區分表示
方式一: 使用顏色來區分不同類別時,我們需要再添加新的數據和scatter方法
x_value = 100*np.random.rand(100) y_value = 100*np.random.rand(100) y1_value = 100*np.random.rand(100) plt.scatter(x_value,y_value, c="hotpink",edgecolors="blue",label="A產品") plt.scatter(x_value,y1_value, c="#88c999", edgecolors="y",label="B產品")
方式二:我們可以使用marker來標記不同類型,例如我們使用上一節的案例再添加一個scatter()
r0 = 80 size = (20*np.random.rand(100))**2 r = np.sqrt(x_value**2+y_value**2) area = np.ma.masked_where(r > r0,size) area1 = np.ma.masked_where(r <= r0, size) plt.scatter(x_value,y_value,s=area,c="hotpink",edgecolors="blue",label="A產品") plt.scatter(x_value, y_value, s=area1, c="red", edgecolors="y",marker="^",label="B產品") the = np.arange(0,np.pi/2, 0.01) plt.plot(r0*np.cos(the),r0*np.sin(the))
5. 顏色條散點圖
在散點圖表中,我們為瞭對每個點顏色深淺進行表示,我們可以借助cmap顏色條來進行添加
- 顏色條顯示關鍵字:cmap
- 默認為viridis,可選值如accent_r,blues_r,brbg_r,greens_r等等
- 表示每種顏色從0~100的值
當要顯示顏色列表時,我們需要調用pyplot.colorbar()
例如,我們對散點圖添加一個紅色系的顏色列表
size = (20*np.random.rand(100))**2 color = np.random.randint(0,100,100) plt.scatter(x_value,y_value, s=size, c=color,label="A產品",cmap="afmhot_r") plt.colorbar()
6. 曲線散點圖
散點圖都是由一個一個坐標點組成的,當這些點具有一定規律時,我們可以使用散點圖來繪制曲線。
我們使用scatter()繪制一個2次方的冪函數
x_value = list(range(1, 100)) y_value = [x ** 2 for x in x_value] plt.scatter(x_value,y_value,c=y_value,cmap="hot_r",edgecolors="none",s=50) plt.show()
總結
本期,我們對matplotlib.pyplot 繪制散點圖scatter方法及相關屬性進行詳細的學習。對於暫時沒有找到規律的數據來說,使用散點圖可以快速發現數據的分佈情況
以上就是Python matplotlib 繪制散點圖詳解建議收藏的詳細內容,更多關於Python matplotlib 繪制散點圖的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- python scatter繪制散點圖
- Python Matplotlib繪圖基礎詳細教程
- 手把手教你用Matplotlib實現數據可視化
- python數學建模之Matplotlib 實現圖片繪制
- Matplotlib可視化之自定義顏色繪制精美統計圖