plt.scatter()函數解析

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)

matplotlib.pyplot.scatter(x, 
	y, 
	s=20, 
	c='b', 
	marker='o', 
	cmap=None, 
	norm=None, 
	vmin=None, 
	vmax=None, 
	alpha=None, 
	linewidths=None, 
	verts=None, 
	hold=None, 
	**kwargs)

參數:

x,y:表示的是shape大小爲(n,)的數組,也就是我們即將繪製散點圖的數據點,輸入數據。

s:表示的是大小,是一個標量或者是一個shape大小爲(n,)的數組,可選,默認20。

c:表示的是色彩或顏色序列,可選,默認藍色’b’。但是c不應該是一個單一的RGB數字,也不應該是一個RGBA的序列,因爲不便區分。c可以是一個RGB或RGBA二維行數組。
在這裏插入圖片描述

marker:MarkerStyle,表示的是標記的樣式,可選,默認’o’。

cmap:Colormap,標量或者是一個colormap的名字,cmap僅僅當c是一個浮點數數組的時候才使用。如果沒有申明就是image.cmap,可選,默認None。

norm:Normalize,數據亮度在0-1之間,也是隻有c是一個浮點數的數組的時候才使用。如果沒有申明,就是默認None。

vmin,vmax:標量,當norm存在的時候忽略。用來進行亮度數據的歸一化,可選,默認None。

alpha:標量,0-1之間,可選,默認None。

linewidths:也就是標記點的長度,默認None。

案例:

import numpy as np
import matplotlib.pyplot as plt
 
np.random.seed(0)
x=np.random.rand(20)
y=np.random.rand(20)

area=(50*np.random.rand(20))**2
 
plt.scatter(x,y,s=area,alpha=0.5)
plt.show()

把c參數改成隨機數組。

import numpy as np
import matplotlib.pyplot as plt
 
np.random.seed(0)
x=np.random.rand(20)
y=np.random.rand(20)
 
colors=np.random.rand(20)
area=(50*np.random.rand(20))**2
 
plt.scatter(x,y,s=area,c=colors,alpha=0.5)
plt.show()

把maker參數改成x的樣本。

import numpy as np
import matplotlib.pyplot as plt
 
np.random.seed(0)
x=np.random.rand(20)
y=np.random.rand(20)
 
colors=np.random.rand(20)
area=(50*np.random.rand(20))**2
 
plt.scatter(x,y,s=area,c=colors,alpha=0.5,marker='x')
plt.show()

修改其中的linewidth參數的大小,但是沒什麼不同,注意:只有marker爲封閉的圖案的時候,這個參數纔有效。

import numpy as np
import matplotlib.pyplot as plt
 
np.random.seed(0)
x=np.random.rand(20)
y=np.random.rand(20)
 
colors=np.random.rand(20)
area=(50*np.random.rand(20))**2
 
plt.scatter(x,y,s=area,c=colors,alpha=0.5,marker='x',linewidths=lines)
plt.show()

把s參數改成200。

import numpy as np
import matplotlib.pyplot as plt
 
np.random.seed(0)
x=np.random.rand(20)
y=np.random.rand(20)
 
colors=np.random.rand(20)
plt.scatter(x,y,s=200,c=colors,alpha=0.5)
plt.show()

把linewidths參數改成數組。

import numpy as np
import matplotlib.pyplot as plt
 
np.random.seed(0)
x=np.random.rand(20)
y=np.random.rand(20)

lines=np.zeros(220)+5
plt.scatter(x,y,s=200,c='b',alpha=0.5,linewidths=lines)
plt.show()

把alpha參數改成1。

import numpy as np
import matplotlib.pyplot as plt
 
np.random.seed(0)
x=np.random.rand(20)
y=np.random.rand(20)

lines=np.zeros(20)+5
plt.scatter(x,y,s=200,c='b',alpha=1,linewidths=lines)
plt.show()
發佈了276 篇原創文章 · 獲贊 163 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章