我想用matplotlib.pyplot从数据文件制作一个图,我希望每个标记(三角形)都有一个在输入文件中给出的方向。
输入文件:
x y angle
1 1 10
1.2 1.2 20
1.3 1.3 30
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
infile = open ('traj_marker.txt')
#for s in xrange(8):
x, y = [], []
m = []
for i in xrange(3):
data = infile.readline()
raw = data.split()
x.append(float(raw[0]))
y.append(float(raw[1]))
m.append(float(raw[2]))
xnp = np.array(x)
ynp = np.array(y)
mnp = np.array(m)
fig, ax = plt.subplots()
ax.scatter(xnp, ynp, 100, marker = (3,0,mnp))
plt.xticks (range(1,3))
plt.yticks (range(1,3))
plt.grid()
fig.savefig ('trj.png')
infile.close()
但标记中存在数组 mnp 会产生错误。 我该如何解决这个问题?
答案 0 :(得分:2)
Matplotlib不喜欢作为列表传递的标记参数,因此以下列方式运行它...
N = 20
xnp = np.random.rand(N)
ynp = np.random.rand(N)
mnp = np.random.randint(0, 180, N)
fig, ax = plt.subplots()
for x, y, m in zip(xnp, ynp, mnp):
ax.scatter(x, y, 100, marker = (3,0,m))
plt.show()
答案 1 :(得分:1)