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正则表达式匹配中文用法示例
Jan 17 Python
Python学习小技巧之列表项的拼接
May 20 Python
python实现将excel文件转化成CSV格式
Mar 22 Python
带你认识Django
Jan 15 Python
python实现动态数组的示例代码
Jul 15 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
python数据爬下来保存的位置
Feb 17 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
Jul 28 Python
Python机器学习算法之决策树算法的实现与优缺点
May 13 Python
总结Pyinstaller打包的高级用法
Jun 28 Python
python中pymysql包操作数据库方法
Apr 19 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
天津市收音机工业发展史
2021/03/04 无线电
PHP 开发环境配置(Zend Studio)
2010/04/28 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
2011/06/06 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
PHP ADODB生成下拉列表框功能示例
2018/05/29 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
Jquery选择器 $实现原理
2009/12/02 Javascript
IE和Firefox下event事件杂谈
2009/12/18 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
H5移动端适配 Flexible方案
2016/10/24 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
videocapture库制作python视频高速传输程序
2013/12/23 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
详解Python调用系统命令的六种方法
2021/01/28 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
大学运动会通讯稿
2014/01/28 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
软件项目开发计划书
2014/05/01 职场文书
毕业生面试求职信
2014/06/23 职场文书
授权收款委托书范本
2014/10/10 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL