这行得通,但是没有更好的方法来使小平面图在熊猫中并排显示吗?我觉得可能有一种使用multiindex和subplots参数写的干净方法?

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'group': ['A', 'A', 'B', 'B'],
                   'name': ['name1', 'name2', 'name3', 'name4'],
                   '2016': [1, 2, 3, 4],
                   '2017': [1.2, 2.1, 3.0, 4.9]})
df.set_index(['name'], inplace=True)

fig, ax = plt.subplots(2)

group_a = df[df.group == 'A']
group_b = df[df.group == 'B']
group_a.plot(kind='bar', rot=0, ax=ax[0])
group_b.plot(kind='bar', rot=0, ax=ax[1])


python - 带条的小平面条形图在 Pandas 中并排显示-LMLPHP

最佳答案

如果您想做不止一次,那么总是值得考虑使用函数和循环。在这里,一个循环就足够了。

groups = df.group.unique()

fig, ax = plt.subplots(len(groups))

for i, group in enumerate(groups):
    df[df.group == group].plot(kind='bar', rot=0, ax=ax[i])


python - 带条的小平面条形图在 Pandas 中并排显示-LMLPHP

关于python - 带条的小平面条形图在 Pandas 中并排显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44786815/

10-10 19:27