Python 如何绘制直方图以获得所有唯一值的计数?

Python 如何绘制直方图以获得所有唯一值的计数?,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个Pandas列,其中的数据是.0001独有的 我想绘制一个柱状图,其中每个.0001唯一的数据都有一个条形图 我通过 plt.hist(df['data'], bins=500) 但我希望看到每个唯一值的计数 我该怎么做呢? 谢谢您可以指定存储箱,而不是指定存储箱的数量存储箱=500: plt.hist(df['data'], bins=np.arange(df['data'].min(), df['data'].max(), 0.0001) ) 您可以指定存储箱,而不是指定存储箱的

我有一个Pandas列,其中的数据是.0001独有的

我想绘制一个柱状图,其中每个.0001唯一的数据都有一个条形图

我通过

plt.hist(df['data'], bins=500)
但我希望看到每个唯一值的计数

我该怎么做呢?
谢谢

您可以指定存储箱,而不是指定存储箱的数量
存储箱=500

plt.hist(df['data'], bins=np.arange(df['data'].min(), df['data'].max(), 0.0001) )

您可以指定存储箱,而不是指定存储箱的数量
存储箱=500

plt.hist(df['data'], bins=np.arange(df['data'].min(), df['data'].max(), 0.0001) )

由于您的值是离散的,因此在这些值之间很好地设置bin边界非常重要。如果边界与值重合,可能会出现奇怪的舍入瑕疵。下面的示例中,每个值都有10次,但在值顶部有边界的直方图将最后两个值放入同一个容器中:

导入matplotlib.pyplot作为plt
将numpy作为np导入
作为pd进口熊猫
df=pd.DataFrame({'data':np.repeat(np.arange(0.0005,0.0030,0.0001),10)})
图(ax1,ax2)=plt.子批次(ncols=2,figsize=(15,4))
ax1.hist(df['data'],bin=np.arange(df['data'].min(),df['data'].max(),0.0001),ec='w')
ax1.set_title('值顶部的bin边界')
ax2.hist(df['data'],bin=np.arange(df['data'].min()-0.00005,df['data'].max()+0.0001,0.0001),ec='w')
ax2.set_title('值之间的bin边界')
plt.show()


请注意,边界位于两部分的版本也会将x记号很好地放置在箱子的中心。

由于您的值是离散的,因此必须在这些值之间很好地设置箱子边界。如果边界与值重合,可能会出现奇怪的舍入瑕疵。下面的示例中,每个值都有10次,但在值顶部有边界的直方图将最后两个值放入同一个容器中:

导入matplotlib.pyplot作为plt
将numpy作为np导入
作为pd进口熊猫
df=pd.DataFrame({'data':np.repeat(np.arange(0.0005,0.0030,0.0001),10)})
图(ax1,ax2)=plt.子批次(ncols=2,figsize=(15,4))
ax1.hist(df['data'],bin=np.arange(df['data'].min(),df['data'].max(),0.0001),ec='w')
ax1.set_title('值顶部的bin边界')
ax2.hist(df['data'],bin=np.arange(df['data'].min()-0.00005,df['data'].max()+0.0001,0.0001),ec='w')
ax2.set_title('值之间的bin边界')
plt.show()

请注意,在两半之间有边界的版本也将x记号很好地放在箱子的中心