Matplotlib库学习之scatter(模块)
一、简介
Matplotlib 是 Python 中一个强大的绘图库,其中
matplotlib.pyplot.scatter
用于创建散点图。散点图在数据可视化中广泛用于展示两个变量之间的关系。
二、语法和参数
语法
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: 必选参数,代表散点图中每个点的 x 坐标和 y 坐标。
- s: 可选,标量或数组,用于控制每个点的大小。
- c: 可选,标量或数组,用于控制每个点的颜色。
- marker: 可选,表示散点的形状,默认为
'o'
。 - cmap: 可选,
Colormap
对象或字符串,用于将标量数据映射到颜色。 - norm: 可选,
Normalize
对象,用于缩放颜色数据。 - vmin, vmax: 可选,控制亮度标量数据的最小值和最大值。
- alpha: 可选,标量,用于设置透明度。
- linewidths: 可选,标量或数组,表示每个点的边缘宽度。
- edgecolors: 可选,表示点的边缘颜色。
- plotnonfinite: 可选,布尔值,如果为
True
,会绘制非有限点(NaN
或Inf
)。 - data: 可选,传递数据的对象。
- kwargs: 其他传递给
matplotlib.axes.Axes.scatter
的参数。
返回值
返回一个
PathCollection
对象,表示绘制的散点图。
三、实例
3.1 绘制简单的散点图
import matplotlib.pyplot as plt
# 数据
x =[1,2,3,4,5]
y =[2,3,4,5,6]# 绘制散点图
plt.scatter(x, y)
plt.title("Simple Scatter Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.show()
输出:
显示一个简单的散点图,其中X轴表示1到5的值,Y轴表示2到6的值,每个点为一个圆形标记。
3.2 设置不同大小和颜色的点
import matplotlib.pyplot as plt
# 数据
x =[1,2,3,4,5]
y =[2,3,4,5,6]
sizes =[20,50,80,200,500]
colors =[10,20,30,40,50]# 绘制散点图
plt.scatter(x, y, s=sizes, c=colors, cmap='viridis', alpha=0.6)
plt.title("Scatter Plot with Varying Sizes and Colors")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.colorbar()# 添加颜色条
plt.show()
输出:
显示一个散点图,其中每个点的大小和颜色各不相同,点的颜色根据'viridis'颜色映射来进行区分。
3.3 使用自定义标记形状和边缘颜色
import matplotlib.pyplot as plt
# 数据
x =[1,2,3,4,5]
y =[2,3,4,5,6]
sizes =[100]*5
colors =[0,1,2,3,4]# 绘制散点图
plt.scatter(x, y, s=sizes, c=colors, marker='^', edgecolors='r', linewidths=2, cmap='plasma')
plt.title("Scatter Plot with Custom Marker and Edge Color")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.colorbar()# 添加颜色条
plt.show()
输出:
显示一个散点图,其中每个点的标记形状为三角形,并且有红色边缘,每个点的颜色根据'plasma'颜色映射来区分。
四、注意事项
- 当使用
c
参数进行颜色映射时,如果c
是标量数组,则需要指定cmap
来定义颜色映射的范围。 alpha
参数可以用于调整点的透明度,值越低,点越透明。- 当
edgecolors
为'none'
时,点将没有边缘颜色。
本文转载自: https://blog.csdn.net/qq_46396470/article/details/141234877
版权归原作者 Midsummer-逐梦 所有, 如有侵权,请联系我们删除。
版权归原作者 Midsummer-逐梦 所有, 如有侵权,请联系我们删除。