【发布时间】:2020-01-27 00:27:10
【问题描述】:
python 中的 Matplotlib 采用 x 和 y 值的序列来生成数据图。
我们可以为正在绘制的特定图形指定颜色。但是,由于我们正在绘制一个明确的点列表,我想知道是否有一种方法可以单独指定每个点的颜色?
例如,如何使下图中绘制的每个点都具有特定的随机颜色?
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 400)
y = np.sin(x ** 2)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('A single color plot')
【问题讨论】:
-
我看不到分数
-
您不是在绘制点,而是在绘制一条线。如果你想绘制点,你可以使用
ax.scatter。相反,如果您希望对单个线段进行着色,则可以使用LineCollection,如图所示,例如在this Q&A. -
@ImportanceOfBeingErnest 哦,好吧,如果散点图可以为每个点采用单独的颜色,我也很满意。我该怎么做?
-
ax.scatter(x,y, c=np.random.rand(len(x), 3)) -
plot创建一个Line2D对象,该对象针对快速绘图进行了优化。让相同的命令plot根据输入返回不同的对象是不好的风格。这就是为什么有LineCollection,如果不同的段应该有不同的属性,可以使用它。
标签: python matplotlib plot