在pyplot.plot中一次指定几个标记

时间:2015-01-29 22:03:13

标签: python matplotlib

我绘制了一条带有pyplot.plot的2行的图。有没有办法一次指定几个标记?

import matplotlib.pyplot as plt
data = [[0, 0], [1, 2], [1, 3], [1, 4]]
plt.plot(c, marker = 'o') # the two lines will have the marker, which I don't want.
plt.show()

我知道我可以绕线:

import matplotlib.pyplot as plt
markers = ['*', 'D']
for i in range(len(data[0])): plt.plot(map(list, zip(*data))[i], marker = markers[i])    
plt.show()

但我想知道是否存在更好的解决方案,例如一个看起来像plt.plot(c, marker = ('*', 'D'))的人。

enter image description here

1 个答案:

答案 0 :(得分:1)

我不相信您正在寻找的具体语法存在。我认为它引入了太多含糊之处,可能违反了Python主体'explicit is better than implicit'

你可以这样做,

import numpy as np
from matplotlib import pyplot as plt    

data = np.array([[0, 0],
                 [1, 2],
                 [1, 3],
                 [1, 4]])

plt.plot(data[:,0], '*-', data[:, 1], 'D-')

老实说,我并不觉得这比循环更好'。