python matplotlib画盒图、子图解决坐标轴标签重叠的问题


Posted in Python onJanuary 19, 2020

在使用matplotlib画图的时候将常会出现坐标轴的标签太长而出现重叠的现象,本文主要通过自身测过好用的解决办法进行展示,希望也能帮到大家,原图出现重叠现象例如图1:

python matplotlib画盒图、子图解决坐标轴标签重叠的问题

代码为:

data1=[[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765]]
data2=[[0.2985,0.2268,0.2985,0.2996,0.2985],[0.2022,0.3203,0.3141,0.2926,0.2681],[0.2985,0.2668,0.2786,0.2985,0.2985],[0.2985,0.2985,0.2984,0.2978,0.2966]]
data3=[[0.7789,0.7698,0.6999,0.7789,0.7789],[0.7788,0.7758,0.7768,0.7698,0.8023],[0.7789,0.7781,0.7789,0.7789,0.7789],[0.7789,0.7782,0.7752,0.7852,0.7654]]
data4=[[0.6688,0.6688,0.6688,0.6981,0.6618],[0.6688,0.5644,0.5769,0.5858,0.5882],[0.6688,0.6688,0.6688,0.6688,0.6646],[0.6688,0.6646,0.6646,0.6688,0.6746]]  #date1-date4均为我用到的数据,数据的形式等可自行更换。
##将4个图画在一张图上
fig=plt.figure(figsize=(13,11))
ax1=fig.add_subplot(2, 2, 1)##左右布局
ax2=fig.add_subplot(2, 2, 2)
ax3=fig.add_subplot(2, 2, 3)##上下布局
ax4=fig.add_subplot(2, 2, 4)

plt.sca(ax1)   
labels=['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday']#标签
plt.boxplot(data1,labels=labels,boxprops={'linewidth':'2'},capprops={'linewidth':'2'},whiskerprops={'linewidth':'2'},medianprops={'linewidth':'2'}) #linewidth设置线条的粗细;boxprops、capprops、whiskerprops、medianprops表示盒图中各个线条的类型
plt.ylabel('Today',fontsize=16)
plt.xlabel('(a)',fontsize=16)

plt.sca(ax2)   
labels=['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday']
plt.boxplot(data2,labels=labels,boxprops={'linewidth':'2'},capprops={'linewidth':'2'},whiskerprops={'linewidth':'2'},medianprops={'linewidth':'2'})
plt.xlabel('(b)',fontsize=16)

plt.sca(ax3)   
labels=['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday']
plt.boxplot(data3,labels=labels,boxprops={'linewidth':'2'},capprops={'linewidth':'2'},whiskerprops={'linewidth':'2'},medianprops={'linewidth':'2'})
plt.ylabel('Today',fontsize=16)
plt.xlabel('(c)',fontsize=16)

plt.sca(ax4)   
labels=['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday']
plt.boxplot(data4,labels=labels,boxprops={'linewidth':'2'},capprops={'linewidth':'2'},whiskerprops={'linewidth':'2'},medianprops={'linewidth':'2'})
plt.xlabel('(d)',fontsize=16)
plt.show()

1、解决办法1: 将轴标签分两行显示,如图2:

python matplotlib画盒图、子图解决坐标轴标签重叠的问题

只需在原代码中每个子图画图中加上代码:

ax1.set_xticklabels(['Today is Sunday','\n'+'Today is Monday','Today is Tuesday','\n'+'Today is Wednesday'],fontsize=16)

'\n'+则表示换行显示的意思,想要哪个标签换行显示,则在标签前面加上此符号,也可以换多行,一个\n表示一行,例如'\n\n'+则表示换两行显示。fontsize是设置显示标签的字体大小。

2、解决办法2:轴标签倾斜显示

python matplotlib画盒图、子图解决坐标轴标签重叠的问题

同样只需在原代码的基础上加上一句代码:

ax1.set_xticklabels(['Today is Sunday','Today is Monday','Today is Tuesday','Today is Wednesday'],fontsize=16,rotation=10)

rotation表示倾斜的角度,10即为倾斜10度,可任意设置,也可结合上面换行显示一同使用。

3、解决办法3:利用matplotlib里面的自动调整语句

python matplotlib画盒图、子图解决坐标轴标签重叠的问题

只需在原代码的画图部分的最后加上matplotlib自动调整的语句,图则会自动调整标签大小:

plt.tight_layout()

以上这篇python matplotlib画盒图、子图解决坐标轴标签重叠的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python命令行参数sys.argv使用示例
Jan 28 Python
详细讲解Python中的文件I/O操作
May 24 Python
Python中type的构造函数参数含义说明
Jun 21 Python
Python实现一个简单的验证码程序
Nov 03 Python
python中的随机函数random的用法示例
Jan 27 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
python实现websocket的客户端压力测试
Jun 25 Python
关于pandas的离散化,面元划分详解
Nov 22 Python
Django中的模型类设计及展示示例详解
May 29 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
python编写扎金花小程序的实例代码
Feb 23 Python
python基础学习之递归函数知识总结
May 26 Python
python matplotlib中的subplot函数使用详解
Jan 19 #Python
Python中的 ansible 动态Inventory 脚本
Jan 19 #Python
Python实现序列化及csv文件读取
Jan 19 #Python
使用python turtle画高达
Jan 19 #Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 #Python
python实现五子棋游戏(pygame版)
Jan 19 #Python
Python turtle画图库&&画姓名实例
Jan 19 #Python
You might like
Laravel框架实现的记录SQL日志功能示例
2018/06/19 PHP
javascript之dhDataGrid Ver2.0.0代码
2007/07/01 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
JavaScript根据数据生成百分比图和柱状图的实例代码
2013/07/14 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
JavaScript中常见的字符串操作函数及用法汇总
2015/05/04 Javascript
基于jQuery实现的旋转彩圈实例
2015/06/26 Javascript
JavaScript的jQuery库中function的存在和参数问题
2015/08/13 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
jQuery实现鼠标滑过图片移动特效
2016/12/08 Javascript
JavaScript实现前端实时搜索功能
2020/03/26 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
关于vue面试题汇总
2018/03/20 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Python3如何判断三角形的类型
2020/04/12 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
Python脚本调试工具安装过程
2021/01/11 Python
2014婚礼司仪主持词
2014/03/14 职场文书
学期评语大全
2014/04/30 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
上班迟到检讨书
2014/09/15 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL