使用 hvplot 时如何去除 Bokeh 中的空类别?

问题描述 投票:0回答:1

我有一个有类别和子类别的情节。我想绘制它使其不堆叠,但我希望类别在它们的值不存在时不显示。

您可以在下面找到示例代码和我正在尝试做的事情的图片。在图片上,您可以看到 B 在 X 中的位置和 C 在 Y 中的位置。我希望它们不在那里。我该怎么做?

import pandas as pd
import hvplot.pandas

df = pd.DataFrame({
    'category': ['A', 'A', 'B', 'B', 'C', 'C'],
    'subcategory': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
    'value': [10, 20, 0, 30, 40, 0]
})

df_filtered = df[df['value'] != 0]

grouped = df_filtered.groupby(['category', 'subcategory']).sum()

grouped.hvplot.bar(stacked=False, by='category')

python pandas jupyter bokeh hvplot
1个回答
0
投票

不幸的是,我没有找到您问题的确切答案,但这里有一个解决方法:


    import seaborn as sns
    import matplotlib.pyplot as plt
    g = sns.catplot(kind='bar', data=df_filtered, col='subcategory', x='category', y='value',
                hue='category', palette='rocket', dodge=False, sharex=False)
    plt.tight_layout()
    plt.show()

结果看起来像这样:

© www.soinside.com 2019 - 2024. All rights reserved.