欢迎访问宙启技术站
智能推送

使用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参数分别对应散点的大小和位置。

最后,我们可以看到绘制出了一个具有不同形状和颜色的散点图,并且图例中的颜色条展示了散点颜色与数值之间的关系。