我试图将一些数据绘制为matplotlib中的直方图,使用高精度值作为x轴刻度。数据介于0和0.4之间,但大多数值非常接近:
0.05678,0.05879,0.125678,0.129067
我使用np.around()
来制作值(并且它使它们应该从0到0.4),但它并不适用于所有数据。
这是一个有点正确的例子 - >
你可以看到0.4之后的分数是不对的。
以下是我在Jupyter Notebook
中使用的代码:
plt.hist(x=[advb_ratios,adj_ratios,verb_ratios],color = ['r','y','b'], bins =10, label = ['adverbs','adjectives', 'verbs'])
plt.xticks(np.around(ranks,1))
plt.xlabel('Argument Rank')
plt.ylabel('Frequency')
plt.legend()
plt.show()
对于我正在绘制的两个直方图,只有不同的x
,所有使用的x
值都在0 and 1
之间。
所以我的问题是:
rank
值提供不同的标签会更好地将它们彼此分开 - 例如1,2,3,4或者我会丢失数据的精确度和一些有用的信息吗? 答案 0 :(得分:0)
我不了解您的问题,数据在0到0.4之间的事实不应影响它的显示方式。我不知道为什么你需要做其他事情,只需致电plt.hist()
。
此外,您可以将数组传递给bins
参数以指示您想要的容器,因此您可以执行类似的操作以强制容器的大小始终相同
# Fake data
x1 = np.random.normal(loc=0, scale=0.1, size=(1000,))
x2 = np.random.normal(loc=0.2, scale=0.1, size=(1000,))
x3 = np.random.normal(loc=0.4, scale=0.1, size=(1000,))
plt.hist([x1,x2,x3], bins=np.linspace(0,0.4,10))