今天給大家分享一個經(jīng)典案例,那就是在Python matplotlib,如何完整的繪制成功一個散點圖,其實,如果想要繪制的話,還是比較麻煩的。但是如果我們使用Python matplotlib的話,繪制的就會比較好,怎么繪制呢?下面就給大家詳細的解答下。
什么是散點圖?
所謂的散點圖,指的是在相關(guān)的數(shù)據(jù)分析當中,數(shù)據(jù)會依次分布在直角坐標系當中,散點圖是變量跟著自變量去進行變動,據(jù)此可以選擇合適的函數(shù)對數(shù)據(jù)點進行擬合。
用組成的數(shù)據(jù),做成數(shù)據(jù)的相關(guān)集合點,考察相關(guān)坐標點的一個分布情況,判斷兩變量之間是否存在某種關(guān)聯(lián)或總結(jié)坐標點的分布模式。
散點圖將序列顯示為一組點。值由點在圖表中的位置表示。類別由圖表中的不同標記表示。散點圖通常用于比較跨類別的聚合數(shù)據(jù)。
下面給出一個散點圖的具體代碼案例
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#不要畫布邊框
)
#設(shè)置全局中文字體
plt.rcParams['font.sans-serif']='KaiTi'#設(shè)置全局字體為中文楷體
plt.rcParams['axes.unicode_minus']=False#不使用中文減號
#讀取數(shù)據(jù)
crime=pd.read_csv("crimeRatesByState2005.csv")
print(list(crime.murder))#轉(zhuǎn)化成列表
#刪除state為United States的數(shù)據(jù)
crime2=crime[crime.state!="United States"]
#刪除state為District of Columbia的數(shù)據(jù)
crime2=crime2[crime2.state!="District of Columbia"]
z=list(crime2.population/10000)#取人口數(shù)據(jù)
#colors=np.random.rand(len(list(crime2.murder)))#根據(jù)謀殺率隨機去顏色
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()
散點圖一行代碼顯示
#讀取數(shù)據(jù)
df=pd.read_csv('iris.csv')
#平面坐標系的位置只能表示2維數(shù)據(jù)
x=df['sepal_length']
y=df['sepal_width']
#根據(jù)X,Y值畫散點圖
plt.scatter(x,y)
加顏色的散點圖
#讀取數(shù)據(jù)
df=pd.read_csv('iris.csv')
#平面坐標系的位置只能表示2維數(shù)據(jù)
x=df['sepal_length']
y=df['sepal_width']
c=df['species'].map({'setosa':'r','versicolor':'g','virginica':'b'})
#根據(jù)X,Y值畫散點圖,用不同的顏色標識不同的分類
plt.scatter(x,y,c=c)
顏色深淺表示數(shù)值大小
#讀取數(shù)據(jù)
df=pd.read_csv('iris.csv')
#平面坐標系的位置只能表示2維數(shù)據(jù)
x=df['sepal_length']
y=df['sepal_width']
c=df['petal_length']
#根據(jù)X,Y值畫散點圖,用顏色的深淺表示花萼的長度
plt.scatter(x,y,c=c,cmap=plt.cm.RdYlBu)
散點圖顯示顏色和大小
#讀取數(shù)據(jù)
df=pd.read_csv('iris.csv')
#平面坐標系的位置只能表示2維數(shù)據(jù)
x=df['sepal_length']#x軸坐標
y=df['sepal_width']#y軸坐標
c=df['petal_length']#顏色color
s=df['petal_width']#大小size
#根據(jù)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)
自定義圖表散點圖
#讀取數(shù)據(jù)
df=pd.read_csv('iris.csv')
def get_xycs(df):
#平面坐標系的位置只能表示2維數(shù)據(jù)
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':'*'}
#根據(jù)X,Y值畫散點圖,用顏色的深淺表示花萼的長度,用大小表示花萼的寬度,每組數(shù)據(jù)只能是一種點樣式
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()
散點圖萬能模板
#讀取數(shù)據(jù)
df=pd.read_csv('iris.csv')
def get_xycs(df):
#平面坐標系的位置只能表示2維數(shù)據(jù)
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':'*'}
#根據(jù)X,Y值畫散點圖,用顏色的深淺表示花萼的長度,用大小表示花萼的寬度,每組數(shù)據(jù)只能是一種點樣式
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)二維數(shù)據(jù)
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)二維數(shù)據(jù)
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')#一個文本框

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.hztianpu.com/yun/127977.html
摘要:繪制折線圖和散點圖要用到下的,因此我們需要先引入,因為要用到數(shù)組實現(xiàn),還要引入。如果讓折線圖和散點圖疊加還可以突出每個點。 1.繪制折線圖和散點圖要用到matplotlib下的pylab,因此我們需要先引入,因為要用到數(shù)組實現(xiàn),還要引入numpy。然后確定x軸和y軸的數(shù)據(jù),最后將其呈現(xiàn)出來。 import matplotlib.pylab as pyl import numpy as ...
摘要:刪除數(shù)據(jù)點的輪廓設(shè)置每個坐標軸的取值范圍使用顏色映射允許你給散點圖中的各個點指定顏色。默認為藍色點和黑色輪廓,在散點圖包含的數(shù)據(jù)點不多時效果很好。但繪制很多點時,黑色輪廓可能會粘連在一起。 1.安裝matplotlib pip install matplotlib 2.繪制簡單圖形 import matplotlib.pyplot as plt #圖形輸入值 input_values...
摘要:,繪制盒形圖,同樣指定對數(shù)據(jù)的分類。如果傳入則畫出的盒形圖是橫向的。繪制小提琴圖,表示是否將兩類數(shù)據(jù)分開繪制,如果為,則不分開繪制,默認為。數(shù)據(jù)集數(shù)據(jù)集名。計算置信區(qū)間時使用的引導(dǎo)迭代次數(shù)整數(shù)。 seaborn是python中的一個非常強大的數(shù)據(jù)可視化庫,它集成了matplotlib,下圖為seaborn的官網(wǎng),如果遇到疑惑的地方可以到官網(wǎng)查看。http://seaborn.pydat...
摘要:,繪制盒形圖,同樣指定對數(shù)據(jù)的分類。如果傳入則畫出的盒形圖是橫向的。繪制小提琴圖,表示是否將兩類數(shù)據(jù)分開繪制,如果為,則不分開繪制,默認為。數(shù)據(jù)集數(shù)據(jù)集名。計算置信區(qū)間時使用的引導(dǎo)迭代次數(shù)整數(shù)。 seaborn是python中的一個非常強大的數(shù)據(jù)可視化庫,它集成了matplotlib,下圖為seaborn的官網(wǎng),如果遇到疑惑的地方可以到官網(wǎng)查看。http://seaborn.pydat...
??蘇州程序大白一文從基礎(chǔ)手把手教你Python數(shù)據(jù)可視化大佬??《??記得收藏??》 目錄 ????開講啦?。。?!????蘇州程序大白?????博主介紹前言數(shù)據(jù)關(guān)系可視化散點圖 Scatter plots折線圖強調(diào)連續(xù)性 Emphasizing continuity with line plots同時顯示多了圖表 數(shù)據(jù)種類的可視化 Plotting with categorical da...
閱讀 1170·2023-01-14 11:38
閱讀 1160·2023-01-14 11:04
閱讀 987·2023-01-14 10:48
閱讀 2538·2023-01-14 10:34
閱讀 1241·2023-01-14 10:24
閱讀 1124·2023-01-14 10:18
閱讀 736·2023-01-14 10:09
閱讀 818·2023-01-14 10:02