今天給大家分享一個經典案例,那就是在Python matplotlib,如何完整的繪制成功一個散點圖,其實,如果想要繪制的話,還是比較麻煩的。但是如果我們使用Python matplotlib的話,繪制的就會比較好,怎么繪制呢?下面就給大家詳細的解答下。
什么是散點圖?
所謂的散點圖,指的是在相關的數據分析當中,數據會依次分布在直角坐標系當中,散點圖是變量跟著自變量去進行變動,據此可以選擇合適的函數對數據點進行擬合。
用組成的數據,做成數據的相關集合點,考察相關坐標點的一個分布情況,判斷兩變量之間是否存在某種關聯或總結坐標點的分布模式。
散點圖將序列顯示為一組點。值由點在圖表中的位置表示。類別由圖表中的不同標記表示。散點圖通常用于比較跨類別的聚合數據。
下面給出一個散點圖的具體代碼案例
import matplotlib.pyplot as plt import pandas as pd import numpy as np plt.figure(figsize=(9,5),#(寬度,高度)單位inch dpi=120,#清晰度dot-per-inch #facecolor='#CCCCCC',#畫布底色 #edgecolor='black',linewidth=0.2,frameon=True,#畫布邊框 #frameon=False#不要畫布邊框 ) #設置全局中文字體 plt.rcParams['font.sans-serif']='KaiTi'#設置全局字體為中文楷體 plt.rcParams['axes.unicode_minus']=False#不使用中文減號 #讀取數據 crime=pd.read_csv("crimeRatesByState2005.csv") print(list(crime.murder))#轉化成列表 #刪除state為United States的數據 crime2=crime[crime.state!="United States"] #刪除state為District of Columbia的數據 crime2=crime2[crime2.state!="District of Columbia"] z=list(crime2.population/10000)#取人口數據 #colors=np.random.rand(len(list(crime2.murder)))#根據謀殺率隨機去顏色 cm=plt.cm.get_cmap('RdYlBu')#使用色譜RdYlBu plt.scatter(list(crime2.murder),list(crime2.burglary),s=z,c=z,cmap=cm,linewidth=0.5,alpha=0.5)#繪制散點圖 plt.xlabel("murder") plt.ylabel("burglary") plt.show()
散點圖一行代碼顯示
#讀取數據 df=pd.read_csv('iris.csv') #平面坐標系的位置只能表示2維數據 x=df['sepal_length'] y=df['sepal_width'] #根據X,Y值畫散點圖 plt.scatter(x,y)
加顏色的散點圖
#讀取數據 df=pd.read_csv('iris.csv') #平面坐標系的位置只能表示2維數據 x=df['sepal_length'] y=df['sepal_width'] c=df['species'].map({'setosa':'r','versicolor':'g','virginica':'b'}) #根據X,Y值畫散點圖,用不同的顏色標識不同的分類 plt.scatter(x,y,c=c)
顏色深淺表示數值大小
#讀取數據 df=pd.read_csv('iris.csv') #平面坐標系的位置只能表示2維數據 x=df['sepal_length'] y=df['sepal_width'] c=df['petal_length'] #根據X,Y值畫散點圖,用顏色的深淺表示花萼的長度 plt.scatter(x,y,c=c,cmap=plt.cm.RdYlBu)
散點圖顯示顏色和大小
#讀取數據 df=pd.read_csv('iris.csv') #平面坐標系的位置只能表示2維數據 x=df['sepal_length']#x軸坐標 y=df['sepal_width']#y軸坐標 c=df['petal_length']#顏色color s=df['petal_width']#大小size #根據X,Y值畫散點圖,用顏色的深淺表示花萼的長度,用大小表示花萼的寬度 plt.figure(figsize=(5,5),dpi=100) #plt.scatter(x,y,c=c,s=50)#可以是標量,那么所有的點都一樣 plt.scatter(x,y,c=c,s=s*30)
自定義圖表散點圖
#讀取數據 df=pd.read_csv('iris.csv') def get_xycs(df): #平面坐標系的位置只能表示2維數據 x=df['sepal_length']#x軸坐標 y=df['sepal_width']#y軸坐標 c=df['petal_length']#顏色color s=df['petal_width']#大小size return x,y,c,s markers={'setosa':'o','versicolor':'D','virginica':'*'} #根據X,Y值畫散點圖,用顏色的深淺表示花萼的長度,用大小表示花萼的寬度,每組數據只能是一種點樣式 plt.figure(figsize=(5,5),dpi=100) #plt.scatter(x,y,c=c,s=50)#可以是標量,那么所有的點都一樣 for sp in df['species'].unique(): x,y,c,s=get_xycs(df[df['species']==sp]) plt.scatter(x,y,c=c,s=s*30,cmap=plt.cm.seismic,marker=markers[sp],label=sp) plt.legend()
散點圖萬能模板
#讀取數據 df=pd.read_csv('iris.csv') def get_xycs(df): #平面坐標系的位置只能表示2維數據 x=df['sepal_length']#x軸坐標 y=df['sepal_width']#y軸坐標 c=df['petal_length']#顏色color s=df['petal_width']#大小size return x,y,c,s markers={'setosa':'o','versicolor':'D','virginica':'*'} #根據X,Y值畫散點圖,用顏色的深淺表示花萼的長度,用大小表示花萼的寬度,每組數據只能是一種點樣式 plt.figure(figsize=(5,5),dpi=100) #plt.scatter(x,y,c=c,s=50)#可以是標量,那么所有的點都一樣 for sp in df['species'].unique(): x,y,c,s=get_xycs(df[df['species']==sp]) plt.scatter(x,y,s=s*30,cmap=plt.cm.seismic,marker=markers[sp],label=sp) plt.legend()
其他模板
###在二維坐標系上,位置表示(x,y)二維數據 x=df.sepal_length#x表示花瓣長 y=df.sepal_width#y表示花瓣寬 s=(df.petal_length*df.petal_width)*np.pi#s(size)表示花萼面積 c=(df.petal_length*df.petal_width)*np.pi plt.scatter(x,y,s=s*5,c=c,cmap=plt.cm.RdYlBu_r) plt.xlabel('sepal_length') plt.ylabel('sepal_width')
#在二維坐標系上,位置表示(x,y)二維數據 x=df.sepal_length#x表示花瓣長 y=df.sepal_width#y表示花瓣寬 s=(df.petal_length*df.petal_width)*np.pi#s(size)表示花萼面積 #print(df.species) #colormap={"setosa":"#FF0000","versicolor":"green","virginica":"b"}#定義一個字典將species字符串映射到顏色字符串上 colormap={"setosa":1,"versicolor":5,"virginica":6}#定義一個字典將species字符串映射到顏色字符串上 c=df.species.map(colormap) #print(c) plt.scatter(x,y,s=s*5,c=c,cmap=plt.cm.coolwarm,alpha=0.7,edgecolors='face') plt.xlabel('sepal_length') plt.ylabel('sepal_width')
plt.scatter(df['burglary'],df['larceny_theft'], s=df['population']*2e-5, c=df['motor_vehicle_theft'],cmap=plt.cm.coolwarm, edgecolors='b', alpha=0.75) for idx,statename in df['state'].items(): plt.text(x=df['burglary'][idx],y=df['larceny_theft'][idx]-df['population'][idx]*2e-5*0.5,s=statename,fontsize=6,ha='center',va='top') df.plot.scatter(x='burglary',y='larceny_theft',c='motor_vehicle_theft',cmap=plt.cm.coolwarm,s=df['population']*2e-5) for i in df.index: if i in top5_motor_theft_index:#偷車賊最多的5個州 plt.text(df.loc[i,'burglary']+10,df.loc[i,'larceny_theft']-10,df.loc[i,'state'],color='red')#一個文本框
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/127977.html
摘要:繪制折線圖和散點圖要用到下的,因此我們需要先引入,因為要用到數組實現,還要引入。如果讓折線圖和散點圖疊加還可以突出每個點。 1.繪制折線圖和散點圖要用到matplotlib下的pylab,因此我們需要先引入,因為要用到數組實現,還要引入numpy。然后確定x軸和y軸的數據,最后將其呈現出來。 import matplotlib.pylab as pyl import numpy as ...
摘要:刪除數據點的輪廓設置每個坐標軸的取值范圍使用顏色映射允許你給散點圖中的各個點指定顏色。默認為藍色點和黑色輪廓,在散點圖包含的數據點不多時效果很好。但繪制很多點時,黑色輪廓可能會粘連在一起。 1.安裝matplotlib pip install matplotlib 2.繪制簡單圖形 import matplotlib.pyplot as plt #圖形輸入值 input_values...
摘要:,繪制盒形圖,同樣指定對數據的分類。如果傳入則畫出的盒形圖是橫向的。繪制小提琴圖,表示是否將兩類數據分開繪制,如果為,則不分開繪制,默認為。數據集數據集名。計算置信區間時使用的引導迭代次數整數。 seaborn是python中的一個非常強大的數據可視化庫,它集成了matplotlib,下圖為seaborn的官網,如果遇到疑惑的地方可以到官網查看。http://seaborn.pydat...
摘要:,繪制盒形圖,同樣指定對數據的分類。如果傳入則畫出的盒形圖是橫向的。繪制小提琴圖,表示是否將兩類數據分開繪制,如果為,則不分開繪制,默認為。數據集數據集名。計算置信區間時使用的引導迭代次數整數。 seaborn是python中的一個非常強大的數據可視化庫,它集成了matplotlib,下圖為seaborn的官網,如果遇到疑惑的地方可以到官網查看。http://seaborn.pydat...
??蘇州程序大白一文從基礎手把手教你Python數據可視化大佬??《??記得收藏??》 目錄 ????開講啦!!!!????蘇州程序大白?????博主介紹前言數據關系可視化散點圖 Scatter plots折線圖強調連續性 Emphasizing continuity with line plots同時顯示多了圖表 數據種類的可視化 Plotting with categorical da...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02