python seaborn 共享x轴画图 数据可视化
来源:互联网 发布:纳米盒软件下载 编辑:程序博客网 时间:2024/05/20 02:26
最近实习数据分析需要画两个图共享x轴,
我之前找到了matplotlib如何实现:http://www.developerq.com/article/1516290674
但是不知道如何移植到seaborn上,经过N次实验终于找到方法了!
需求:折线图和柱状图共享x轴,y轴双坐标,一侧是折线图的坐标,一侧是柱状图的坐标。柱状图每个柱上有标注,折线图每个点上有标注。
fig = plt.figure(figsize=[18,6])#设定图片大小 ax1 = fig.add_subplot(111)#添加第一副图 ax2 = ax1.twinx()#共享x轴,这句很关键! """ 画WOE值随hit_data变化的柱状图 """ sns.barplot(x='hit_data', y='sum_people', data=result.reset_index(),ax=ax1,alpha=0.8)#画柱状图,注意ax是选择画布 rects = ax1.patches labels=result['labels']#一个series for rect, label in zip(rects, labels):#柱状图标记 height = rect.get_height() ax1.text(rect.get_x() +division(rect.get_width() , 2), height + 3, label, ha='center', va='bottom')#为每个柱写标注 ax1.axes.set_ylabel(u"进件数", fontsize=15) ax1.axes.set_xlabel(u"{0} (单位:{1})".format(xName,xDanwei), fontsize=15) # 设置x 坐标label """ 画WOE值随hit_data变化的折线图 """ sns.pointplot(result.index, result['woe'], ax=ax2)#画在ax2画布上 for c in ax2.collections: # 这三行为折线图的点加注释 for of in c.get_offsets(): if(of[1]<0): dotlabel=1/math.e**of[1] else: dotlabel=math.e**of[1] ax2.annotate(round(dotlabel,2), of) ax2.plot([-1, x.max()+1],[0,0],color='r')#画一条iv值(在ax2中)=0的红线 ax2.axes.set_ylabel(u"好 woe值 坏", fontsize=15) # 设置y坐标label ax2.axes.set_title(u"折线图", fontsize=15) #plt.show() fig.savefig(u"rulesetid{0}ruleid{1}woe值随{2}变化趋势图".format(str(rulesetid),str(ruleid),xName)) #保存图片 plt.close(fig)#把图片释放掉,否则循环批量跑的时候保存图片会产生重叠
关键:
1.画图的时候加ax参数选择画布
2.共享x轴时的画图可以理解为像PS的图层!ax=ax1是一层画布,ax=ax2是第二层画布,因为先画的ax1后画的ax2,所以ax2覆盖在ax1上面,这意味着折线图覆盖在柱状图上,当折线图点的标注有柱状图柱的标注重合时,显示折线图点的标注,在上层的图的坐标轴在右侧。同理,无论用seaborn画什么图,加ax参数都可以选择画布。
3.ax2 = ax1.twinx()#共享x轴,这句很关键!
阅读全文
1 0
- python seaborn 共享x轴画图 数据可视化
- Python数据可视化-seaborn Seaborn
- python科学计算数据可视化模块-seaborn
- PYTHON数据可视化(三)seaborn
- PYTHON数据可视化(四)seaborn
- python seaborn画图
- Python可视化seaborn练习题
- seaborn, 数据可视化工具
- 基于Python的数据可视化 matplotlib seaborn pandas
- Python数据可视化—seaborn简介和实例
- Python数据可视化—seaborn简介和实例
- python——数据可视化:matplotlib,seaborn,pandas
- python的另外一个数据可视化包 seaborn
- 利用python数据分析——基于Seaborn模块可视化
- python科学计算——数据可视化(2) Seaborn
- 数据可视化——Seaborn
- Python可视化模块——SeaBorn 01
- 数据可视化(三)- Seaborn简易入门
- AngularJS表单的查询与增加
- Deep Linking 深度链接 2
- 项目Shiro注解权限角色使用
- HTTP协议简介
- CF-777C Alyona and Spreadsheet
- python seaborn 共享x轴画图 数据可视化
- OFBiz进阶--OFBiz开发之什么情况要重启OFBiz项目
- BZOJ3781: 小B的询问
- 无状态服务(stateless service)
- 挑战题二
- 解决perl: warning: Setting locale failed. perl: warning: Please check that your locale settings:
- eclipse的入门使用,项目的创建删除,项目的导入导出,eclipse的字体和颜色设置,控制台的字体设置,
- [二分+树状数组]51 Nod 1685——第K大区间2
- BMP图片格式处理