【发布时间】:2016-03-18 01:11:40
【问题描述】:
我一直在玩弄这个问题,并且接近我想要的,但缺少那一两行。
基本上,我想绘制一条线,其颜色会根据第三个数组的值发生变化。潜伏着我发现这很好用(尽管速度很慢)并且代表了问题
import numpy as np
import matplotlib.pyplot as plt
c = np.arange(1,100)
x = np.arange(1,100)
y = np.arange(1,100)
cm = plt.get_cmap('hsv')
fig = plt.figure(figsize=(5,5))
ax1 = plt.subplot(111)
no_points = len(c)
ax1.set_color_cycle([cm(1.*i/(no_points-1))
for i in range(no_points-1)])
for i in range(no_points-1):
bar = ax1.plot(x[i:i+2],y[i:i+2])
plt.show()
这给了我这个:
我希望能够在这个情节中包含一个颜色条。到目前为止,我还无法破解它。可能会有其他行包含不同的 x,y 但相同的 c,所以我认为 Normalize 对象将是正确的路径。
更大的图景是该图是 2x2 子图网格的一部分。我已经使用 matplotlib.colorbar.make_axes(ax4) 为颜色条轴对象腾出空间,其中 ax4 带有第 4 个子图。
【问题讨论】:
-
参见此处的第二个示例:matplotlib.org/examples/pylab_examples/multicolored_line.html 您应该使用
LineCollection这是一个ScalarMappable子类,因此您可以将艺术家传递给fig.colorbar()以获得颜色条。跨度>
标签: python matplotlib