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版
Dec 07 Python
python采集博客中上传的QQ截图文件
Jul 18 Python
Python中函数的用法实例教程
Sep 08 Python
Python 实现数据库更新脚本的生成方法
Jul 09 Python
Python实现破解猜数游戏算法示例
Sep 25 Python
python使用代理ip访问网站的实例
May 07 Python
python 反向输出字符串的方法
Jul 16 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
Jul 19 Python
Python实战购物车项目的实现参考
Feb 20 Python
感知器基础原理及python实现过程详解
Sep 30 Python
Django的ListView超详细用法(含分页paginate)
May 21 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 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
用php实现的下载css文件中的图片的代码
2010/02/08 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
php字符串操作常见问题小结
2016/10/11 PHP
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
纯JS单页面赛车游戏制作代码分享
2017/03/03 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
python生成指定尺寸缩略图的示例
2014/05/07 Python
浅谈flask源码之请求过程
2018/07/26 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
Anconda环境下Vscode安装Python的方法详解
2020/03/29 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
python空元组在all中返回结果详解
2020/12/15 Python
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
蛋白质世界:Protein World
2017/11/23 全球购物
Capitol Lighting的1800lighting.com:住宅和商业照明
2019/04/10 全球购物
地球鞋加拿大官网:Earth Shoes Canada
2020/11/17 全球购物
医院检讨书范文
2014/02/01 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
中学生打架检讨书
2014/10/13 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书