在步骤直方图中反转列顺序

时间:2017-11-02 21:03:07

标签: python-2.7 numpy matplotlib histogram

使用histtype='step'将2D数组传递给Matplotlib的直方图函数似乎以相反的顺序绘制列(至少从我从左到右的偏见西方视角)。

以下是一个例子:

import matplotlib.pyplot as plt
import numpy as np

X = np.array([
    np.random.normal(size=5000),
    np.random.uniform(size=5000)*2.0 - 1.0,
    np.random.beta(2.0,1.0,size=5000)*3.0,
]).T

trash = plt.hist(X,bins=50,histtype='step')
plt.legend(['Normal','2*Uniform-1','3*Beta(2,1)'],loc='upper left')

产生这个:

enter image description here

运行matplotlib版本2.0.2,python 2.7

1 个答案:

答案 0 :(得分:4)

来自documentation for legend

  

为了保持"标签"和图例元素实例在一起,   最好在艺术家创作时指定标签,或者通过   调用set_label方法   艺术家

我建议使用histlabel关键字参数:

  

字符串或匹配多个数据集的字符串序列

结果是:

import matplotlib.pyplot as plt
import numpy as np

X = np.array([
    np.random.normal(size=5000),
    np.random.uniform(size=5000)*2.0 - 1.0,
    np.random.beta(2.0,1.0,size=5000)*3.0,
]).T

trash = plt.hist(X,bins=50,histtype='step',
                 label=['Normal','2*Uniform-1','3*Beta(2,1)'])
plt.legend(loc='upper left')
plt.show()