我试图做到这一点,如果事件的散点图高于硅藻土散点图,则图的颜色从蓝色变为红色。 (如果不同,类似地从蓝色到黄色)。
我环顾四周很长一段时间,但它似乎没有工作。
代码如下:
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(“红色”),要么不大于(“黄色”)。在定义散点图“事件”之后,可能有一种方法可以做到这一点,但这种方法似乎更直接。
关于python - 如何更改循环/if 语句中散点图的颜色? (Python),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7110648/