用法

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

参数介绍

x,y绘制散点图的数据float or array-like, shape(n,)
s一个实数或者一个数组大小为(n,) ,可选参数,指的是散点中心的大小flaot or array-like, shape(n,)
c散点的颜色array-like or list of colors or color
marker标记的样式,默认是’o’
cmapColormap实例或注册的Colormap名称。仅当c是浮点数组时才使用cmap
norm也是一个颜色数据,使用norm在0到1的范围内缩放颜色数据c,映射到colormap cmap,如果没有,使用默认颜色,规范化default:None
vmin,vmaxvmin和vmax与默认范数一起使用,将颜色数组c映射到colormap cmap。如果没有,则分别使用颜色数组的最小值和最大值。在给定范数时使用vmin/vmax是错误的float, default:None
alpha透明度,数字在0,1之间float,default: None
linewidths标记边缘的线宽float or array-like,default: 1.5
edgecolors散点图边缘线颜色sequence of color or color 'face’与散点图面的颜色一样,‘none’ 不会绘制边缘
plotnonfinite是否使用非有限c(即inf、-inf或nan)绘制点。如果为True,则使用错误的colormap颜色绘制点
有两个参数我放到一起,用代码同时进行解释c,edgecolors
参数c 和 edgecolors, linewidths
import matplotlib.pyplot as plt
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
# 为了显示出c和edgecolors 我将linewidths调增到15
plt.scatter(a, b, linewidths=15,c='red',edgecolors=['black', 'green','cyan','lightgreen'])

请添加图片描述
参数 s

import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(12,6))
plt.rcParams['font.family'] = 'SimHei'

a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
plt.subplot(121)
plt.title('不添加s')
plt.scatter(a,b,c='red',linewidths=6)

plt.subplot(122)
plt.title('添加s,s=1.5')
plt.scatter(a,b,c='red',s=1.5,linewidths=6)
plt.show()

请添加图片描述
参数marker

import matplotlib.pyplot as plt

plt.figure(figsize=(12,6))
plt.rcParams['font.family'] = 'SimHei'

a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
plt.subplot(131)
plt.title('标准')
plt.scatter(a,b,linewidths=6)

plt.subplot(132)
plt.title("设置marker 'x'")
plt.scatter(a,b,marker='x')

plt.subplot(133)
plt.title("设置marker 'v'")
plt.scatter(a,b,marker='v')
plt.show()

请添加图片描述
marker属性

markerdescription
.
,像素,类似与方块
o圈,默认值
v倒三角形
^正三角形
<左三角形
>右三角形
1tri_down
2tri_up
3tri_left
4tri_right
8八角形
s正方形
p五角
*星星
h六角1
H六角2
+加号
xx号
D钻石
d细钻
“l”->一个竖线v线
_H线
先更新这么多,后面陆陆续续会介绍完
这里显示下maker=1 or 2 or 3 or 4
import matplotlib.pyplot as plt

plt.figure(figsize=(12,6))
plt.rcParams['font.family'] = 'SimHei'

a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]

plt.subplot(141)
plt.title("设置marker '1'")
plt.scatter(a,b,s=100,marker='1')

plt.subplot(142)
plt.title("设置marker '2'")
plt.scatter(a,b,s=100,marker='2')

plt.subplot(143)
plt.title("设置marker '3'")
plt.scatter(a,b,s=100,marker='3')

plt.subplot(144)
plt.title("设置marker '4'")
plt.scatter(a,b,s=100,marker='4')

plt.show()

在这里插入图片描述
参数cmap
cmap主要是配合c参数一起使用的,c可以是一个颜色序列,使用数字列表代替
plt.cm.Spectral是一个颜色映射集,并不代表说明[0:5]代表某个颜色,参数c出现5个不同的值
然后为每个值分配一个颜色

import matplotlib.pyplot as plt

a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
c = [0, 1, 2, 3, 4]
plt.rcParams['font.family'] = 'SimHei'

plt.subplot(121)
plt.title('标准')
plt.scatter(a, b, c=c, s=80)

plt.subplot(122)
plt.title('添加cmap')
plt.scatter(a, b, c=c, s=80, cmap=plt.cm.Spectral)

plt.show()

在这里插入图片描述
vmin,vmax,norm散点亮度设置, alpha透明度
plt.colorbar()颜色条
散点图进行多出设置,即成为气泡图,下面进行展示

import matplotlib.pyplot as plt
# 导入颜色条库
from matplotlib import colors
import numpy as np

x = np.random.randn(50) # 随机产生50个X坐标
y = np.random.randn(50) # 随机产生50个Y坐标
color = np.random.rand(50) # 随机产生用于映射颜色的数值
size = 500 * np.random.rand(50) # 随机改变散点大小的数值
changecolor = colors.Normalize(vmin=0.4, vmax=0.8)
plt.scatter(x, y, c=color, s = size, alpha=0.3, cmap='viridis', norm=changecolor)
plt.colorbar() # 显示颜色条
plt.show()

请添加图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐