python - 删除pyplot中重叠的x轴标签
问题描述
我是 python 新手,正在尝试绘制一些时间序列数据。我正在使用 pyplot 创建 3 个堆叠折线图,它们具有相同的 x 轴(日期),但 y 轴的比例不同。但是,每个 y 轴以及底部图表的 x 轴都有重叠的标签。有从 0 到 1 生成的标签,以及来自我的数据集的轴标签。如何关闭 y 轴和底部 x 轴上自动生成的 0 到 1 标签?
fig, ax = plt.subplots(3,1,sharex='all', squeeze=False, figsize=(12,8))
ax = fig.add_subplot(3,1,1)
plt.plot(df1['date'], df1['value'])
ax2 = fig.add_subplot(3,1,2)
plt.plot(df2['date'], df2['value'])
ax3 = fig.add_subplot(3,1,3)
plt.plot(df3['date'], df3['value'])
plt.show()
您可以在下图中看到问题。任何帮助是极大的赞赏!
解决方案
您已经在初始分配中创建了包含所有轴的子图
fig, ax = plt.subplots(3,1,sharex='all', squeeze=False, figsize=(12,8))
因此以下任务
ax = fig.add_subplot(3,1,1)
ax2 = fig.add_subplot(3,1,2)
ax3 = fig.add_subplot(3,1,3)
不仅没有必要,而且它们似乎与已经创建的子图重叠(如果将其更改为 add_subplot(2,1,1) 您会注意到它刚刚开始再次划分图形并将轴相互叠加)。
您想要做的是访问在 plt.subplots() 调用中创建的轴:
fig, ax = plt.subplots(3,1,sharex='all', squeeze=False, figsize=(12,8))
ax[0].plot(df1['date'], df1['value'])
ax[1].plot(df2['date'], df2['value'])
ax[2].plot(df3['date'], df3['value'])
plt.show()
模拟输出:
来自 seaborn 提示数据集的数据
推荐阅读
- javascript - 根据django类别模型自定义mapmarker
- express - Does the route of a .post() method matter?
- unity3d - 画布问题统一画布和按钮不想同时移动
- android - 有没有办法在不激活 GPS 的情况下访问手机信号塔信息?
- c++ - 如何声明大小未知的数组字符串(稍后输入)
- shell - 我在我的电脑上安装了fish shell,现在我无法打开VS code终端
- flutter - List 在 dart 中初始化之前无法访问对象
- python - Python PyQT QPainter。最低绘画代码。画家不活跃的问题
- r - 打印 tibble 字符变量出现带引号
- java - ClassNotFoundException 即使 jar tvf 显示“缺失”类