繁体   English   中英

如何在loop / if语句中更改散点图的颜色? (蟒蛇)

[英]How to change the colour of a scatterplot in a loop/if statement? (Python)

我试图这样做,如果事件的散点图高于硅藻土散点图,那么绘图的颜色会从蓝色变为红色。 (同样,从蓝色到黄色,否则)。

我已经看了很长时间,但它似乎没有起作用。

这里的代码如下:

for line in open('C:\...'):
    line = line.split()
    y = line[9]
    if y == "END":
        break
    x = line[10]
    if x == 'END':
        break
    z = line[11]
    if z == 'END':
    break
    x0.append(float(x))
    y0.append(float(y))
    z0.append(float(z))

for line in open('C:\...'):
    line=line.split()
    c = line[0]
    a = line[1]
    b = line[2]
    a0.append(float(a))
    b0.append(float(b))
    c0.append(float(c))
##    print c0
    Tave = average(c0)
    print Tave


fig = pylab.figure() 
ax = p3.Axes3D(fig) 
Diatomite = ax.scatter(a0,b0,c0, color='green')
Events = ax.scatter(x0, z0, y0, color='b')
pyplot.show() 

for value in y0[:]:
    if value > Tave:
        ax.scatter(color = 'red')
    else:
        ax.scatter(color = 'yellow')

scatter(color=colors)

任何帮助将不胜感激! (请注意,我取出了文件的路径。)

看起来你几乎拥有它。 首先定义颜色,然后制作散点图。 所以在print Tave ,建立一个包含颜色的列表; 我用列表理解来做到这一点:

y0colors = ['red' if value > Tave else 'yellow' for value in y0]

然后当你制作'事件'时,设置color=y0colors ,如下所示:

Events = ax.scatter(x0, z0, y0, color=y0colors)

当然,根据你使用的要求,没有一个点是蓝色的。 y0值大于Tave('red')或不大('yellow')。 在定义散点图“事件”之后,可能有一种方法可以做到这一点,但这种方式似乎更直接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM