matplotlib.pyplot.scatter的函數(shù)說(shuō)明如下:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
常用參數(shù)有:x,y組成了散點(diǎn)的坐標(biāo);s為散點(diǎn)的面積;c為散點(diǎn)的顏色(默認(rèn)為藍(lán)色'b');marker為散點(diǎn)的標(biāo)記;alpha為散點(diǎn)的透明度(0與1之間的數(shù),0為完全透明,1為完全不透明);linewidths為散點(diǎn)邊緣的線寬;如果marker為None,則使用verts的值構(gòu)建散點(diǎn)標(biāo)記;edgecolors為散點(diǎn)邊緣顏色。
其他參數(shù)如cmap為colormap;norm為數(shù)據(jù)亮度;vmin、vmax和norm配合使用用來(lái)歸一化亮度數(shù)據(jù)
可以把氣泡圖是一種特殊的散點(diǎn)圖,散點(diǎn)圖展示兩個(gè)維度的數(shù)據(jù),氣泡圖還可用通過(guò)氣泡的大小和顏色展示數(shù)據(jù)。
%python.ipython
import pandas as pd
import matplotlib.pyplot as plt
import pandas as pd
#第一組數(shù)據(jù)
d = {"time":pd.Series([2006,2007,2008,2009,2010]),
"number":pd.Series([10,200,120,150,300]),
"size":pd.Series([50,130,40,50,160]),
"classification":pd.Series([1,2,0,1,2]),
"judge":pd.Series([True,True,True,True,True])}
df=pd.DataFrame(d)
#第二組數(shù)據(jù)
d1 = {"time":pd.Series([2006,2007,2008,2009,2010]),
"number":pd.Series([20,30,140,190,35]),
"size":pd.Series([80,140,40,50,150]),
"classification":pd.Series([1,2,0,1,2]),
"judge":pd.Series([True,True,True,True,True])}
df1=pd.DataFrame(d1)
#先定義氣泡大小,rank 函數(shù)將大小列進(jìn)行大小分配,越大的值分配結(jié)果也越高
#n為倍數(shù),用來(lái)調(diào)節(jié)氣泡的大小
size=df['size'].rank()
n=60
plt.figure(figsize=(14, 8), dpi= 100, facecolor='w', edgecolor='k')
plt.gca().set(xlim=(0, 350), ylim=(0, 200), xlabel='number', ylabel='size')
plt.xticks(fontsize=22)
plt.yticks(fontsize=22)
plt.title("scatter picture", fontsize=22)
plt.scatter(df['number'],df['size'],color=[plt.cm.tab10(i) for i in df['classification']],s=size*n,alpha=0.6,marker='^',label="circle")
plt.scatter(df1['number'],df1['size'],color=[plt.cm.tab10(i) for i in df1['classification']],s=size*n,alpha=0.4,marker='o',label="triangle")
plt.grid(True)
plt.legend()
plt.savefig('/root/result.png')
plt.show()

scatter.jpg