Python?matplotlib?繪制散點圖詳解建議收藏
前言
我們在matplotlib模塊學習中,發(fā)現(xiàn)有常用的反映數(shù)據(jù)變化的折線圖,對比數(shù)據(jù)類型差異的柱狀圖和反應數(shù)據(jù)頻率分布情況的直方圖。
往期內(nèi)容速看
Python?matplotlib超詳細教程實現(xiàn)圖形繪制
其實在數(shù)據(jù)統(tǒng)計圖表中,有一種圖表是散列點分布在坐標中,反應數(shù)據(jù)隨著自變量變化的趨勢。
本期,我們將詳細學習matplotlib 繪制散點圖相關屬性的學習,let's go~
1. 散點圖概述
什么是散點圖?
- 散點圖用于在水平軸和垂直軸上繪制數(shù)據(jù)點,數(shù)據(jù)以點狀分布在左標系中
- 散點圖表示因變量隨著自變量而變化的大致趨勢
- 散點圖由多個左坐標點構(gòu)成,考察坐標點的分布,判斷是否存在某種關聯(lián)或者分布模式
- 對于不同類別的點,則由圖表中不同形狀或顏色的標記符表示
- 散點圖主要分為散點圖矩陣、三維散點圖、ArcGIS散點圖
散點圖使用場景
- 散點圖用于比較跨類別的聚合數(shù)據(jù)
- 散點圖用于分析數(shù)據(jù)線性、多項式趨勢情況
- 散點圖用于四象限分析
- 散點圖用于找到數(shù)據(jù)趨勢公式
- 散點圖可以為后期精確的圖標進行輔助
繪制散點圖步驟
- 導入matplotlib.pyplot模塊
- 準備數(shù)據(jù),可以使用numpy/pandas整理數(shù)據(jù)
- 調(diào)用pyplot.scatter()繪制散點圖
案例展示
本次案例我們將分析某產(chǎn)品不同定價銷售額分布情況
案例需要準備兩組數(shù)據(jù)x和y軸,其中x,y軸的數(shù)據(jù)量要保持一致
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
傳入數(shù)據(jù)類型為list或者數(shù)字,默認為20
設置散點顏色
關鍵字:c
默認顏色為藍色
取值范圍
- 表示顏色的英文單詞:如紅色"red"
- 表示顏色單詞的簡稱如:紅色"r",黃色"y"
- RGB格式:十六進制格式如"#88c999";(r,g,b)元組形式
- 也可以傳入顏色列表
設置散點樣式
關鍵字:marker
系統(tǒng)默認為'o'小圓圈
取值還可以?。?'o', 'v', '^', '<', '>', '8', 's', 'p', '*', 'h', 'H', 'D', 'd', 'P', 'X')
設置透明度
關鍵字:alpha
取值范圍:0~1
設置散點邊框
關鍵字: edgecolor
默認為face
取值選項:
- "face"|"none"
- 表示顏色的英文單詞、簡寫或者rgb
我們結(jié)合上一節(jié)的案例,設置散點大小,散點邊框為粉色,散點顏色為#88c999
size = (20*np.random.rand(50))**2 plt.scatter(x_value,y_value,s=area,c="#88c999",edgecolors="pink"
3. 添加折線散點圖
我們在查看散點圖時,有時候會借助折線圖來輔助分析。我們繼續(xù)拿第一節(jié)的數(shù)據(jù)來分析。
我們使用np.random.rand()來生成100個隨機數(shù)據(jù)
x_value = 100*np.random.rand(100) y_value = 100*np.random.rand(100)
需要借助我們高中的數(shù)學公司如sin\cos函數(shù)等(高中數(shù)學都還給老師了)
使用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. 多類型散點圖
我們在觀察數(shù)據(jù)的時候,會同時比較多個類型數(shù)據(jù),因此我們可以通過顏色或者散點樣式來區(qū)分表示
方式一: 使用顏色來區(qū)分不同類別時,我們需要再添加新的數(shù)據(jù)和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產(chǎn)品") plt.scatter(x_value,y1_value, c="#88c999", edgecolors="y",label="B產(chǎn)品")
方式二:我們可以使用marker來標記不同類型,例如我們使用上一節(jié)的案例再添加一個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產(chǎn)品") plt.scatter(x_value, y_value, s=area1, c="red", edgecolors="y",marker="^",label="B產(chǎn)品") the = np.arange(0,np.pi/2, 0.01) plt.plot(r0*np.cos(the),r0*np.sin(the))
5. 顏色條散點圖
在散點圖表中,我們?yōu)榱藢γ總€點顏色深淺進行表示,我們可以借助cmap顏色條來進行添加
- 顏色條顯示關鍵字:cmap
- 默認為viridis,可選值如accent_r,blues_r,brbg_r,greens_r等等
- 表示每種顏色從0~100的值
當要顯示顏色列表時,我們需要調(diào)用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產(chǎn)品",cmap="afmhot_r") plt.colorbar()
6. 曲線散點圖
散點圖都是由一個一個坐標點組成的,當這些點具有一定規(guī)律時,我們可以使用散點圖來繪制曲線。
我們使用scatter()繪制一個2次方的冪函數(shù)
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()
總結(jié)
本期,我們對matplotlib.pyplot 繪制散點圖scatter方法及相關屬性進行詳細的學習。對于暫時沒有找到規(guī)律的數(shù)據(jù)來說,使用散點圖可以快速發(fā)現(xiàn)數(shù)據(jù)的分布情況?
以上就是Python matplotlib 繪制散點圖詳解建議收藏的詳細內(nèi)容,更多關于Python matplotlib 繪制散點圖的資料請關注腳本之家其它相關文章!
相關文章
python GUI庫圖形界面開發(fā)之PyQt5拖放控件實例詳解
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5使用拖放控件實例詳解,需要的朋友可以參考下2020-02-02Python定時發(fā)送消息的腳本:每天跟你女朋友說晚安
今天小編就為大家分享一篇關于Python定時發(fā)送消息的腳本:每天跟你女朋友說晚安的文章,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10