我有一份清单。 列表索引是度数。 值是该学位数的概率。
看起来,x [1] = 0.01表示1度的概率为0.01。
我想绘制此列表的分布图,然后尝试
hist = plt.figure(1)
plt.hist(PrDeg, bins = 1)
plt.title("Degree Probability Histogram")
plt.xlabel("Degree")
plt.ylabel("Prob.")
hist.savefig("Prob_Hist")
PrDeg是我上面提到的列表。
但是保存的数字不正确。
X轴值变为Prob。和Y是度(列表索引)
如何使用pyplot交换x轴和y轴值?
答案 0 :(得分:1)
直方图通常不会显示概率,它们显示不同值间隔内观察值的计数或频率,称为容器。 pyplot
通过将数组的最小值和最大值之间的范围拆分为n个大小相等的二进制位来定义区间或区间,其中n是您使用参数bins = 1
指定的数字。所以,在这种情况下,你的直方图有一个单独的bin,它给它奇怪的方面。通过增加该数字,您将能够更好地了解实际发生的情况。
我们可以从这样的直方图中获得的唯一信息是,您的数据值范围从0.0到~0.122,而len(PrDeg)
接近1800.如果我说得对,那就意味着你图形看起来像人们对直方图的期望,因此它不是不正确的。
要回答关于交换轴的问题,参数orientation=u'horizontal'
就是你要找的。我在下面的例子中使用它,相应地重命名轴:
import numpy as np
import matplotlib.pyplot as plt
PrDeg = np.random.normal(0,1,10000)
print PrDeg
hist = plt.figure(1)
plt.hist(PrDeg, bins = 100, orientation=u'horizontal')
plt.title("Degree Probability Histogram")
plt.xlabel("count")
plt.ylabel("Values randomly generated by numpy")
hist.savefig("Prob_Hist")
plt.show()