我有一个相当大的数据集,其中包含"星形颗粒的位置"我用matplotlib绘制的。数据被组织成列,其中三列对应于x,y和z坐标。我绘制了x和y坐标,但我希望能够将z坐标用作粒子的一种颜色图。例如,具有较大z坐标的粒子具有较低的α或具有不同的颜色。目前我的代码如下所示:
f = open(input_file)
line = f.readline()
line = f.readline()
px=[]
py=[]
pz=[]
for line in f:
ldata = line.split()
x = np.float(ldata[2])
y = np.float(ldata[3])
z = np.float(ldata[4])
px.append(x)
py.append(y)
pz.append(z)
plt.plot(px,py,'ro',alpha=0.1)
plt.savefig(output_file)
我是python的新手
答案 0 :(得分:3)
使用plt.cm.
创建颜色列表并更改Alpha值(RGBA数组的最后一列)以匹配您的pz
数据。
import numpy as np
import matplotlib.pyplot as plt
px = np.arange(0,10,0.5)
py = np.random.randn(20)
pz = np.arange(0,1,0.05)
colors = plt.cm.Reds(np.arange(0,1,0.05))
colors[:,-1] = pz
plt.figure()
plt.scatter(px,py,color=colors)
plt.show()
请注意,scatter/plot的alpha关键字只接受0到1之间的值。如果您的pz
数据不在该范围内,则需要对其进行缩放或修改以便这个工作。