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

 更新时间:2020年01月19日 10:35:50   作者:菲啊菲  
今天小编就为大家分享一篇python matplotlib画盒图、子图解决坐标轴标签重叠的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

代码为:

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:

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

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:轴标签倾斜显示

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

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里面的自动调整语句

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

plt.tight_layout()

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

相关文章

  • python tkinterEntry组件设置默认值方式

    python tkinterEntry组件设置默认值方式

    使用Tkinter库中的Entry组件创建文本输入框时,可以通过insert方法在指定位置插入默认文本作为提示,结合使用focus和focusin事件,可以实现用户点击时清除默认文本,以便输入自定义内容
    2024-09-09
  • python实现PDF中表格转化为Excel的方法

    python实现PDF中表格转化为Excel的方法

    这篇文章主要为大家详细介绍了python实现PDF中表格转化为Excel的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • Python NumPy创建数组方法

    Python NumPy创建数组方法

    这篇文章主要介绍了Python NumPy创建数组方法,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-09-09
  • 基于python的多进程共享变量正确打开方式

    基于python的多进程共享变量正确打开方式

    下面小编就为大家分享一篇基于python的多进程共享变量正确打开方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 十个常见的Python脚本详细介绍及代码举例

    十个常见的Python脚本详细介绍及代码举例

    这篇文章主要给大家介绍了十个常见的Python脚本的相关资料,包括批量重命名文件、下载网页图片、发送邮件通知、读取和写入CSV文件、爬取网页数据、自动化测试、图像处理、数据可视化以及创建简单的Web应用,需要的朋友可以参考下
    2024-11-11
  • Python中的全局变量如何理解

    Python中的全局变量如何理解

    在本篇文章里小编给大家整理的是关于Python中全局变量详解内容,需要的朋友们可以参考下。
    2020-06-06
  • python实现npy格式文件转换为txt文件操作

    python实现npy格式文件转换为txt文件操作

    这篇文章主要介绍了python实现npy格式文件转换为txt文件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • python webp图片格式转化的方法

    python webp图片格式转化的方法

    这篇文章主要为大家详细介绍了python webp图片格式转化的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 使用IPython下的Net-SNMP来管理类UNIX系统的教程

    使用IPython下的Net-SNMP来管理类UNIX系统的教程

    这篇文章主要介绍了使用IPython下的Net-SNMP来管理类UNIX系统的教程,本文来自于IBM官方网站技术文档,需要的朋友可以参考下
    2015-04-04
  • python manim实现排序算法动画示例

    python manim实现排序算法动画示例

    这篇文章主要为大家介绍了python manim实现排序算法动画示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论