我将一个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()
ggplot(airbnb_host_count, aes(x='variable', y='host_id', fill='value')) +\
geom_bar(stat='sum', position=position.dodge())
我没有您的dataframe,因此请检查NA值的确切值,并像这样替换它,例如,如果它是NaN
我们可以检查计数:
现在我们绘图,您设置fill='value',而不设置'stat',因为默认值是'count',它计算您的t、f和NA:
相关问题 更多 >
编程相关推荐