matplotlib:从文件

时间:2016-12-10 17:35:45

标签: python matplotlib

我想用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 会产生错误。 我该如何解决这个问题?

2 个答案:

答案 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()

enter image description here

答案 1 :(得分:1)

如果您不知道,可以使用quiver绘制2D字段:

ref.addEventListener(eventname, callback);

enter image description here