python matplotlib,带有线条颜色渐变和颜色条

时间:2016-03-18 01:11:40

标签: python matplotlib

我一直在努力解决这个问题并且接近我想要的但却错过了额外的一两行。

基本上,我想绘制一条线,其颜色会根据第三个数组的值而变化。潜伏在周围我发现这很好用(尽管很慢)并代表问题

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()

这给了我这个:

Single line with a color change

我希望能够在此图中包含一个颜色条。到目前为止,我还没有能够破解它。可能会有其他行包含不同的x,y但是相同的c,所以我认为Normalize对象将是正确的路径。

更大的图片是这个图是2x2子图网格的一部分。我已经使用matplotlib.colorbar.make_axes(ax4)为颜色条轴对象创建空间,其中ax4具有第4个子图。

1 个答案:

答案 0 :(得分:8)

查看multicolored_line exampleMatplotlib gallery中的dpsanders' colorline notebook

plt.plot

enter image description here

请注意,调用LineCollection数百次会导致性能下降。 使用"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"构建多色线段要快得多。