plt中的中文乱码解决:
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
条形图:
注意中文乱码
from plotnine import *
import pandas as pd
median_age_dict={
'国家': ['New Zealand','Spain','Ireland','Israel','Denmark','Norway','Netherlands','Australia','Italy','Sweden'],
'年龄': [39.0, 37.0, 35.0, 34.0, 34.0, 34.0, 34.0, 34.0, 34.0, 34.0]
}
median_age=pd.DataFrame(median_age_dict)
(
# fill以颜色区分
ggplot(median_age,aes(x='国家',y='年龄',fill='国家'))
# 条形图,需要stat指明统计量
+geom_bar(stat='identity',width=0.5)
# 文本标签,nudge_y表示偏离量
+geom_text(aes(x='国家',y='年龄',label='年龄'),nudge_y=2)
+coord_flip()# 翻转x,y
# 排序条形图
+xlim(median_age['国家'])
# +xlim(median_age['Country'][::-1])逆序
# 隐藏图例,设置中文字体
+theme(legend_position = 'none',text=element_text(family='KaiTi'))
# 加上标题
+ggtitle('Top 10 Median age of respondents from different countries')
)

折线图:
这里我比较喜欢日期的间距设置
from plotnine.data import economics save_rate = economics[economics['date']>'2013-01-01'] save_rate=save_rate.reset_index(drop=True) ( ggplot(save_rate,aes(x='date',y='psavert')) + geom_line(color='blue') +geom_point(color='red') + ylim(0,6)#y轴的范围 # 改变x坐标刻度间距 + scale_x_date(breaks='5 months',date_labels='%Y-%m') )

