使用matplotlib.collections绘制具有不同形状和颜色的散点图
发布时间:2023-12-24 02:36:36
matplotlib.collections是matplotlib库中的一个模块,用于绘制一些集合形式的图形,如散点图、柱状图、轮廓图等。在这里,我们将使用matplotlib.collections绘制一个具有不同形状和颜色的散点图,并提供相应的使用例子。
首先,我们导入需要的库和模块。
import matplotlib.pyplot as plt import matplotlib.collections as mcoll import numpy as np
接下来,我们生成一些随机的散点坐标和颜色,作为我们的示例数据。
np.random.seed(0) n = 100 x = np.random.rand(n) y = np.random.rand(n) colors = np.random.rand(n)
我们将使用scatter函数绘制散点图,并指定散点的颜色和形状。然后,我们使用PathCollection对象包装散点图,并使用该对象设置点的形状和颜色。
fig, ax = plt.subplots() # 绘制散点图 scatter = ax.scatter(x, y, s=100, c=colors, alpha=0.5) # 创建PathCollection对象 path_collection = scatter.get_paths() # 设置散点的形状和颜色 scale = 100 offsets = np.column_stack([x, y]) trans = ax.transData lc = mcoll.PathCollection(path_collection, sizes=(scale, ), offsets=offsets, transOffset=trans) scatter.set_sizes([scale]*n) scatter.set_facecolors(colors) # 添加颜色条 plt.colorbar(scatter) # 设置坐标轴范围 ax.set_xlim([0, 1]) ax.set_ylim([0, 1]) plt.show()
在这个例子中,我们使用散点图展示了每个点的坐标位置,并用颜色表示了每个点的数值大小。散点的形状通过设置sizes参数来控制,散点的颜色通过设置facecolors参数来控制。路径集合PathCollection的sizes和offsets参数分别对应散点的大小和位置。
最后,我们可以看到绘制出了一个具有不同形状和颜色的散点图,并且图例中的颜色条展示了散点颜色与数值之间的关系。
