散点图
信息
默认省略导入:
import numpy as np
import matplotlib.pyplot as plt
可以使用pyplot
中的scatter
函数来绘制散点图.
scatter
函数语法格式如下:
matplotlib.pyplot.scatter(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, *, edgecolors, plotnonfinite, data, **kwargs)
参数说明:
x, y
: 长度相同的数组, 也就是我们即将绘制散点图的数据点, 输入数据s
: 点的大小, 默认20
, 也可以是一个数组, 数组每个参数为对应点的大小c
: 点的颜色, 默认颜色b
, 也可以是个RGB或RGBA二维行数组marker
: 点的样式, 默认小圆圈o
cmap
: colormap, 默认viridis
, 标量或者是一个colormap的名字norm
: normalize, 默认None
, 数据亮度在0-1之间vmin/vmax
: 亮度设置alpha
: 透明度设置, 0-1之间, 默认为None
linewidths
: 标记点的长度edgecolors
: 颜色或颜色的序列, 默认为face
plotnonfinite
: 布尔值, 设置是否使用非限定的c
绘制点**kwargs
: 其他参数
例子
普通例子
例子
定义:
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
plt.scatter(x, y)
plt.show()
输出:
自定义图标大小
例子
定义:
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
sizes = np.array([20, 50, 100, 200, 500, 1000, 60, 90])
plt.scatter(x, y, s=sizes)
plt.show()
输出:
自定义点的颜色
例子
定义:
x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
colors = np.array(["red","green","black","orange","purple","beige","cyan","magenta"])
plt.scatter(x, y, c=colors)
plt.show()
输出:
多批散点
例子
定义:
x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink')
x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#88c999')
plt.show()
输出:
使用随机数来设置散点图
例子
定义:
np.random.seed(20240701)
N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2
plt.scatter(x, y, s=area, c=colors, alpha=0.5) # 设置颜色及透明度
plt.title("Scatter Test") # 设置标题
plt.show()
输出:
使用颜色条
pyplot
模块提供了很多可用的颜色条. 设置颜色调需要用到cmap
参数, 默认值为viridis
, 其中的每一个颜色都有一个范围从0-100的值.
注意
如果要显示颜色条, 需要用到plt.colorbar
函数; 如果没有调用, 是无法显示的.
例子
-
Matplotlib 散点图 | 菜鸟教程. (n.d.). Retrieved July 1, 2024, from https://www.runoob.com/matplotlib/matplotlib-scatter.html ↩