import pandas as pd
from plotnine import *
df = pd.DataFrame({'id': [1, 2, 3, 4, 5, 6],
'sex':['male', 'female', 'male', 'male', 'female', 'female'],
'UA': [420, 360, 320, 500, 390, 430]})
# df为:
id sex group UA
0 1 male ctrl 420
1 2 female treat1 360
2 3 male treat1 320
3 4 male treat2 500
4 5 female ctrl 390
5 6 female treat2 430
"""绘制柱状图"""
print( ggplot(df.groupby(['sex'])['UA']\
.agg(['mean']).reset_index())
+ geom_col( aes(y='mean', x='sex'))
)
设置y轴的值域:coord_cartesian(ylim=(,))
print( ggplot(df.groupby(['sex'])['UA']\
.agg(['mean']).reset_index())
+ geom_col( aes(y='mean', x='sex'))
+ coord_cartesian(ylim=(380,430))
)
设置x轴的顺序:scale_x_discrete(limits=[,])
print( ggplot(df.groupby(['sex'])['UA']\
.agg(['mean']).reset_index())
+ geom_col( aes(y='mean', x='sex'))
+ scale_x_discrete(limits=['male','female'])
)
翻转y轴与x轴:coord_flip()
print( ggplot(df.groupby(['sex'])['UA']\
.agg(['mean']).reset_index())
+ geom_col( aes(y='mean', x='sex'))
+ coord_flip()
)