amb*_*rok 1 python pandas bokeh jupyter hvplot
我有一个包含类别和子类别的图。我想绘制它,使其不堆叠,但我希望类别在其值不存在时不显示。
您可以在下面找到示例代码和我正在尝试做的事情的图片。在图片上,您可以看到 X 中 B 的位置和 Y 中 C 的位置。我希望它们不在那里。我怎么做?
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')
Run Code Online (Sandbox Code Playgroud)
小智 10
不幸的是,我没有找到您问题的确切答案,但是,这里有一个解决方法:
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()
Run Code Online (Sandbox Code Playgroud)
结果看起来像这样: