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实现一个简单的银行转账操作
Mar 06 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
Jul 11 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
Django实现分页功能
Jul 02 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
django模板结构优化的方法
Feb 28 Python
Pytorch之保存读取模型实例
Dec 30 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
Python pytesseract验证码识别库用法解析
Jun 29 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
PyTorch安装与基本使用详解
Aug 31 Python
Alpine安装Python3依赖出现的问题及解决方法
Dec 25 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
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
PHP中extract()函数的妙用分析
2012/07/11 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
javascript数组的使用
2013/03/28 Javascript
raphael.js绘制中国地图 地图绘制方法
2014/02/12 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
jQuery检测滚动条是否到达底部
2015/12/15 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
2016/11/26 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
Vue开发之封装分页组件与使用示例
2019/04/25 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
利用python实现命令行有道词典的方法示例
2017/01/31 Python
Python使用base64模块进行二进制数据编码详解
2018/01/11 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
Python for循环生成列表的实例
2018/06/15 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
pygame实现俄罗斯方块游戏(AI篇2)
2019/10/29 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
运动会稿件300字
2014/02/14 职场文书
六一儿童节活动总结
2014/08/27 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
Flask搭建一个API服务器的步骤
2021/05/28 Python
Oracle11g R2 安装教程完整版
2021/06/04 Oracle
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
SpringBoot Http远程调用的方法
2022/08/14 Java/Android