您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:完美解决matplotlib子图坐标轴重叠问题

51自学网 2021-10-30 22:44:31
  python
这篇教程完美解决matplotlib子图坐标轴重叠问题写得很实用,希望能帮到您。

绘制matplotlib多个图形于一张图时往往会出现相邻图坐标轴重叠的现象

此时只须在汇完所有子图后加上以下代码即可

plt.tight_layout()

补充:解决matplotlib横坐标日期过长导致的重叠、无法完全显示问题(换行)

该方法较为繁杂,主要是将年月日和时间分开,通过使用plt.text根据坐标位置将年月日重新加上,前面是为了进行时间转化,

有用的代码为

> plt.text(zb[link],-1.2,year,ha='center')#需要根据自己的位置调整Y的坐标即调整-1

完整程序:

import matplotlib.pyplot as pltimport pandas as pdimport numpy as npplt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签plt.rcParams['axes.unicode_minus']=False #用来正常显示负号time1 =input("输入一个时间(时、分、秒以空格分割):")year = input('请输入年份,格式如 2019-8-30 :')n = input('请输入X轴分段数:')old_time_x = []time1List = time1.split(" ")time1List = [int(x) for x in time1List]'''时间转化'''shi = time1List[0]fen = time1List[1]miao = time1List[2]for x in range(eval(n)+1):    time_x = '%02d:%02d:%02d'%(shi,fen,miao)    old_time_x.append(time_x)    miao += 60    while miao >= 60:        miao = miao - 60        fen += 1        while fen >= 60:            fen = fen -60            shi += 1            while shi > 24:                shi = shi - 24print(old_time_x)x = np.arange(0,10,1)y = np.arange(0,10,1)fig = plt.figure(figsize=(12,6)) plt.xticks(np.linspace(0,9,eval(n)),old_time_x,rotation=0)zb = np.linspace(0,9,eval(n))print(zb)for link in range(len(zb)):    plt.text(zb[link],-1.2,year,ha='center')#需要根据自己的位置调整Y的坐标即调整-1plt.plot(x,y)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。如有错误或未考虑完全的地方,望不吝赐教。


Python 通过分隔符分割文件后按特定次序重新组合的操作
Python 作图实现坐标轴截断(打断)的效果
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。