0%

Python matplotlib scatter 的使用

scatter简介

基本用法

1
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)

其中各个参数的含义如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
x,y: 输入数据

s:指定散点的大小

c:指定散点的颜色。

marker:指定散点的图形样式。应参数支持'.'(点标记)、','(像素标记)、'o'(圆形标记)、'v'(向下三角形标记)、'^'(向上三角形标记)、'<'(向左三角形标记)、'>'(向右三角形标记)、'1'(向下三叉标记)、'2'(向上三叉标记)、'3'(向左三叉标记)、'4'(向右三叉标记)、's'(正方形标记)、'p'(五地形标记)、'*'(星形标记)、'h'(八边形标记)、'H'(另一种八边形标记)、'+'(加号标记)、'x'(x标记)、'D'(菱形标记)、'd'(尖菱形标记)、'|'(竖线标记)、'_'(横线标记)等值。

cmap:指定散点的颜色映射,会使用不同的颜色来区分散点的值

norm:`〜matplotlib.colors.Normalize`,可选,默认:无
`〜matplotlib.colors.Normalize`实例用于缩放
亮度数据为0,1`norm`只有在`c`是一个数组时才被使用
彩车。如果`None',则使用默认值:func:`normalize`。

vmin,vmax:标量,可选,默认值:无
`vmin`和`vmax`与`norm`结合使用来标准化
亮度数据。如果其中任何一个都是`无',那么最小和最大的
使用颜色数组。请注意,如果你通过一个“规范”实例,你的
`vmin``vmax`的设置将被忽略。

alpha:指定散点的透明度,介于0(透明)和1(不透明)之间,

linewidths:指定散点边框线的宽度

verts:(x,y)的序列,可选
如果`marker`为None,这些顶点将用于
构建标记。标记的中心位于
在(0,0)为标准化单位。整体标记重新调整
``s``完成。

edgecolors :指定散点边框的颜色

示例图1

从原点开始逐渐增加点的大小

1
2
3
4
5
x = [i for i in np.arange(0,10,1)]
y = [0]*len(x)
s = [3**n for n in range(len(x))]
plt.scatter(x,y,s=s)
plt.show()

示意图2

展示一个随机散点图

1
2
3
4
5
6
7
8
9
10
11
12
np.random.seed(5565)


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2 # 0 to 15 point radii

plt.scatter(x, y, s=area, c=colors, alpha=0.5)

plt.show()

示意图3

画个同心圆

1
2
3
4
5
6
plt.figure(figsize=(8,6))
plt.scatter(2, 1, s=4000, c='r')
plt.scatter(2, 1, s=1000 ,c='b')
plt.scatter(2, 1, s=10, c='g')

plt.show()

示意图4

带标记

1
2
3
4
5
6
7
8
9
10
11
plt.figure(figsize=(8,6))
x_coords = [0.13, 0.22, 0.39, 0.59, 0.68, 0.74,0.93]
y_coords = [0.75, 0.34, 0.44, 0.52, 0.80, 0.25,0.55]

plt.scatter(x_coords, y_coords, marker = 's', s = 50)
for x, y in zip(x_coords, y_coords):
plt.annotate('(%s,%s)'%(x,y), xy=(x,y),xytext = (0, -10), textcoords = 'offset points',ha = 'center', va = 'top')
plt.xlim([0,1])
plt.ylim([0,1])

plt.show()

其他示意图

标记的示意图

两个分类的示意图


处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道