我正在努力为每个直方图设置xlim,并创建一列图形,以便x轴刻度对齐。作为一只新熊猫,我不确定如何应用答案:Overlaying multiple histograms using pandas。>import from pandas import DataFrame, read_csv
>import matplotlib.pyplot as plt
>import pandas as pd
>df=DataFrame({'score0':[0.047771,0.044174,0.044169,0.042892,0.036862,0.036684,0.036451,0.035530,0.034657,0.033666],
'score1':[0.061010,0.054999,0.048395,0.048327,0.047784,0.047387,0.045950,0.045707,0.043294,0.042243]})
>print df
score0 score1
0 0.047771 0.061010
1 0.044174 0.054999
2 0.044169 0.048395
3 0.042892 0.048327
4 0.036862 0.047784
5 0.036684 0.047387
6 0.036451 0.045950
7 0.035530 0.045707
8 0.034657 0.043294
9 0.033666 0.042243
>df.hist()
>plt.xlim(-1.0,1.0)
结果只将x轴上的一个边界设置为[-1,1]。
我很熟悉R中的ggplot,只是在python中尝试pandas/matplotlib。我愿意接受更好的策划建议。任何帮助都将不胜感激。
更新#1(@ct zhu):
我已经尝试了以下操作,但是子块上的xlim编辑似乎无法将bin宽度转换为新的x轴值。因此,图形现在具有奇数行宽度,并且仍然具有多个图形列:for array in df.hist(bins=10):
for subplot in array:
subplot.set_xlim((-1,1))
更新2:
随着layout的使用越来越近,但是存储箱的宽度不等于间隔长度除以存储箱计数。在下面的示例中,我设置了bins=10。因此,从[-1,1]开始的间隔中每个bin的宽度应该是2/10=0.20;但是,图没有宽度为0.20的任何bin。for array in df.hist(layout=(2,1),bins=10):
for subplot in array:
subplot.set_xlim((-1,1))