我对 Airbnb 数据集进行子集化和融合,并尝试绘制一个分组图表:
from plotnine import *
airbnb_melted = pd.melt(airbnb_newcomers, id_vars =['host_id'], value_vars =['host_identity_verified', 'host_is_superhost'])
print(airbnb_melted)
融化的数据集如下所示:
我知道我的以下代码是错误的,并且绘图的输出不是我想要的,但它最接近我的想法:
ggplot(airbnb_melted, aes(x='variable', y='value')) +\
geom_bar(stat = 'sum', position=position_dodge())
我在网上搜索并发现了很多带有y
数字变量的绘图示例stat='count'
,可以使用。但是,y
这里是分类的,它显示错误PlotnineError: 'stat_count() must not be used with a y aesthetic'
如何绘制类似于以下格式的分组条形图?橙色的词是我添加的指示。谢谢你。
2020 年 1 月 20 日更新:感谢@StupidWolf 的帮助,编码工作如下:
airbnb_host_count = airbnb_melted.replace(np.NaN, 'NA').groupby(['value', 'variable']).count().reset_index()
'host_id' 实际上在这里表示计数:
ggplot(airbnb_host_count, aes(x='variable', y='host_id', fill='value')) +\
geom_bar(stat='sum', position=position.dodge())