假设我有一个如下数据框:
A B C D
s1 1 2 4 2
s2 2 1 4 3
s3 1 4 1 3
我想获得一个条形图,以显示每列值的直方图。即,一个条形图,它在x轴上彼此相邻显示每列直方图,直方图之间的间隔(列)。换句话说,它将是一个两级条形图,其中对于数据框中的每一列,我们都有代表该列直方图的条形图。
如果很重要,我们可以假设每列具有的可能值的数目是已知的,并且对于每列都是恒定的(例如,范围
[0,5]
)当我尝试做时:
df.plot(kind='bar')
我得到的东西与我想要的东西完全不同(x刻度对应于行,而不是[
columns: [value0, value1, valueN]
)。与我想要的最接近的是:df.plot(kind='density')
但是我正在寻找每列类似直方图的描述,而不是PDF的叠加。
更新资料
希望有一个例子会有所帮助。我正在寻找类似下面的图(code here),但不是在每个组中显示两个分数,而是在数据框中显示每列值的直方图:
最佳答案
此演示文稿不会重新缩放,它会水平平移各个直方图,以免它们重叠,然后用列名(以中位数表示)标记X轴,而不是表示比例。
from pandas import DataFrame
from numpy.random import randn
sample = 1000
df = DataFrame(randn(sample, 8))
accum1 = 0
accum2 = 0
spacer = 1
MyTics = []
for colname in df.columns:
TransformedValues = df[colname] - accum1 + accum2
MyTics.extend([TransformedValues.median()])
axs = (TransformedValues).hist()
accum1 += df[colname].min()
accum2 += df[colname].max() + spacer
axs.set_xticks(MyTics)
axs.set_xticklabels(df.columns)
关于python - Pandas 的柱状图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25447208/