1D绘图matplotlib

时间:2014-05-08 15:47:48

标签: python matplotlib

我想根据一个数组(最多1000个元素)绘制单行标记。我宁愿不使用类似的东西:

    plt.xticks(energies[i][j])

因为每个样本值都写在tick之下。我已经广泛研究了Matplotlib文档,但除了hist()之外没有找到任何东西。如果你们知道将1D阵列可视化为单行的其他方法,我将非常感激,特别是如果它涉及代表值密度的颜色。

我正在使用Spyder 2.2.5,Python 2.7.6 | OSX 10.7.4中的64位

1 个答案:

答案 0 :(得分:7)

修改 正如@tcaswell在评论中提到的,eventplot是一个很好的方法。这是一个例子:

from matplotlib import pyplot as plt
import numpy as np

plt.figure()
a = [1,2,5,6,9,11,15,17,18]
plt.hlines(1,1,20)  # Draw a horizontal line
plt.eventplot(a, orientation='horizontal', colors='b')
plt.axis('off')
plt.show()

enter image description here

或者你可以使用垂直线markers?下面的例子有基本的想法。您可以更改标记的颜色以表示密度。

from matplotlib import pyplot as plt
import numpy as np

a = [1,2,5,6,9,11,15,17,18]

plt.hlines(1,1,20)  # Draw a horizontal line
plt.xlim(0,21)
plt.ylim(0.5,1.5)

y = np.ones(np.shape(a))   # Make all y values the same
plt.plot(a,y,'|',ms = 40)  # Plot a line at each location specified in a
plt.axis('off')
plt.show()

enter image description here