【发布时间】:2016-05-24 05:11:12
【问题描述】:
我正在尝试创建具有特定条件的彩色线。基本上,我希望在 y 轴上指向下方时将线设为红色,在指向上方时将线设为绿色,当两者都没有时设为蓝色。
我尝试了一些我发现的类似示例,但我从未能够将它们转换为与轴上的 plot() 一起使用。只是想知道如何做到这一点。
这是我目前想出的一些代码:
#create x,y coordinates
x = numpy.random.choice(10,10)
y = numpy.random.choice(10,10)
#create an array of colors based on direction of line (0=r, 1=g, 2=b)
colors = []
#create an array that is one position away from original
#to determine direction of line
yCopy = list(y[1:])
for y1,y2 in zip(y,yCopy):
if y1 > y2:
colors.append(0)
elif y1 < y2:
colors.append(1)
else:
colors.append(2)
#add tenth spot to array as loop only does nine
colors.append(2)
#create a numpy array of colors
categories = numpy.array(colors)
#create a color map with the three colors
colormap = numpy.array([matplotlib.colors.colorConverter.to_rgb('r'),matplotlib.colors.colorConverter.to_rgb('g'),matplotlib.colors.colorConverter.to_rgb('b')])
#plot line
matplotlib.axes.plot(x,y,color=colormap[categories])
不确定如何让 plot() 接受颜色数组。我总是收到关于用作颜色的格式类型的错误。尝试了十六进制、十进制、字符串和浮点数。与 scatter() 完美搭配。
【问题讨论】:
标签: python matplotlib