plt.scatter()函数用于生成一个scatter散点图。
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。
例子1:
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()
例子2:
把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()
例子3:
把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()
例子4:
修改其中的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()
例子5:
把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()
例子6:
把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()
例子7:
把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()