赞
踩
第二章 Matplotlib 库中 pyplot.scatter() 的使用
目录
pyplot.scatter() 函数就是用来绘制散点图的。我们先来看一下官方文档。
官方文档:
matplotlib.pyplot.scatter(x, y,
s=None,
marker=None,
c=None,
cmap=None,
norm=None,
vmin=None,
vmax=None,
alpha=None,
linewidths=None,
verts=None,
edgecolors=None,
*,
data=None,
**kwargs)
其中:
官方注释: c (颜色)可能的输入如下,
1 要使用 cmap 和norm 范数映射到颜色的 n 个数字的标量或序列。
2 一个 2D 数组,其中的行为 RGB 或 RGBA。
3 长度为 n 的颜色序列。
4 单色格式字符串。
norm、vmin、vmax 这3个参数是对散点颜色亮度进行设置
既然了解了函数的各个参数,那么话不多说,我们直接上代码。
首先只给散点坐标,其他参数默认,来看看绘制出的散点图
- # 导入两个库
- import matplotlib.pyplot as plt
- import numpy as np
-
- # 固定随机状态,可以获得重复数据
- np.random.seed(10)
-
- n = 20
- # rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
- x = np.random.rand(n)
- y = np.random.rand(n)
-
- # 绘制散点图
- plt.scatter(x, y)
- plt.show()
输出结果:(随机生成了20个散点)
设置一下常用参数,来看看效果
- # 导入两个库
- import matplotlib.pyplot as plt
- import numpy as np
-
- # 固定随机状态,可以获得重复数据
- np.random.seed(10)
-
- n = 20
- # rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
- x = np.random.rand(n)
- y = np.random.rand(n)
- area= 500*np.random.rand(n)
- colors=np.random.rand(n)
-
- # 绘制散点图
- plt.scatter(x, y, s = area, marker = '*', c = colors, alpha = 0.6)
-
- plt.show()
输出结果:(生成20个星状的散点)
设置色彩映射表 cmap 参数,使用调色盘中的颜色。
- # 导入两个库
- import matplotlib.pyplot as plt
- import numpy as np
-
- # 固定随机状态,可以获得重复数据
- np.random.seed(10)
-
- n =20
- # rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
- x = np.random.rand(n)
- y = np.random.rand(n)
- area= 2000*np.random.rand(n)
- colors=np.random.rand(n)
-
- # 绘制散点图
- plt.scatter(x, y, s = area, marker = 'o', c = colors, alpha = 0.6, cmap= 'viridis' )
-
- # 绘制颜色条
- plt.colorbar()
- plt.show()
输出结果:
注意:
设置范数 norm 参数,控制颜色变化范围
其中,我们需要用到colors.Normalize( ),使用方法如下:
class matplotlib.colors.Normalize(vmin=None, vmax=None)
- # 使用norm 范数参数
- # 导入三个库
- import matplotlib.pyplot as plt
- import numpy as np
- from matplotlib import colors # 调整“色盘”,导入colors
-
- # 固定随机状态,可以获得重复数据
- np.random.seed(10)
-
- n =20
- # randn( )函数返回一个或一组样本,具有标准正态分布(标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。)。
- x = np.random.randn(n)
- y = np.random.randn(n)
- area = 2000*np.random.rand(n)
- color = np.random.rand(n)
-
- changecolor = colors.Normalize(vmin=0.4, vmax=0.8)
-
-
- # 绘制散点图
- plt.scatter(x, y, s = area, marker = 'o', c = color, alpha = 0.6, cmap= 'viridis' , norm = changecolor )
-
- # 绘制颜色条
- plt.colorbar()
- plt.show()
输出结果:
可以看见,颜色的变化范围变成了(0.4, 0.8)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。