调整图中的y-lim比例(matplotlib,pandas),以使两个图达到相同的比例

Ace*_*.py 3 python matplotlib pandas

我有一个看起来像这样的数据框:

   AgeGroups Factor Cancer  Frequency
0      00-05      B    Yes        223
1      00-05      A     No        108
2      00-05      A    Yes          0
3      00-05      B     No       6575
4      11-15      B    Yes        143
5      11-15      A     No          5
6      11-15      A    Yes          1
7      11-15      B     No       3669
8      16-20      B    Yes        395
9      16-20      A     No         28
10     16-20      A    Yes          1
11     16-20      B     No       6174
12     21-25      B    Yes        624
13     21-25      A     No         80
14     21-25      A    Yes          2
15     21-25      B     No       8173
16     26-30      B    Yes        968
17     26-30      A     No        110
18     26-30      A    Yes          2
19     26-30      B     No       9143
20     31-35      B    Yes       1225
21     31-35      A     No        171
22     31-35      A    Yes          5
23     31-35      B     No       9046
24     36-40      B    Yes       1475
25     36-40      A     No        338
26     36-40      A    Yes         21
27     36-40      B     No       8883
28     41-45      B    Yes       2533
29     41-45      A     No        782
..       ...    ...    ...        ...
54     71-75      A    Yes       2441
55     71-75      B     No      15992
56     76-80      B    Yes       4614
57     76-80      A     No       5634
58     76-80      A    Yes       1525
59     76-80      B     No      10531
60     81-85      B    Yes       1869
61     81-85      A     No       2893
62     81-85      A    Yes        702
63     81-85      B     No       5692
64     86-90      B    Yes        699
65     86-90      A     No       1398
66     86-90      A    Yes        239
67     86-90      B     No       3081
68     91-95      B    Yes        157
69     91-95      A     No        350
70     91-95      A    Yes         47
71     91-95      B     No       1107
72    96-100      B    Yes         31
73    96-100      A     No         35
74    96-100      A    Yes          2
75    96-100      B     No        230
76      >100      B    Yes          5
77      >100      A     No          1
78      >100      A    Yes          1
79      >100      B     No         30
80     06-10      B    Yes        112
81     06-10      A     No          6
82     06-10      A    Yes          0
83     06-10      B     No       2191
Run Code Online (Sandbox Code Playgroud)

与代码:

by_factor = counts.groupby(level='Factor')


    k = by_factor.ngroups

    fig, axes = plt.subplots(1, k, sharex=True, sharey=False, figsize=(15, 8))
    for i, (gname, grp) in enumerate(by_factor):
        grp.xs(gname, level='Factor').plot.bar(
            stacked=True, rot=45, ax=axes[i], title=gname)

    fig.tight_layout()
Run Code Online (Sandbox Code Playgroud)

我得到了一张漂亮的图表,看起来像这样: 在此处输入图片说明 这实际上满足了我的期望,直到我意识到我想重新调整我的y轴,以便两个图表中的y轴可以具有相同的比例。如果您查看正确的图表“ B”,则y轴的比例为25000,图表“ A”的比例为10000。有人可以建议在两个图表上具有相同比例的最佳方法是什么?我试过了:

plt.ylim([0,25000])
Run Code Online (Sandbox Code Playgroud)

它什么也没做或没有改变图表“ A”中的任何内容,因为这基本上只改变了图表“ B”的y轴。

我非常感谢任何建议为两个图实现相同的比例。

Ser*_*ity 5

ylim为一个循环中的每个轴设置最小值和最大值:

for ax in axes: ax.set_ylim([0,25000])
Run Code Online (Sandbox Code Playgroud)