python - 在 Matplotlib 中跨多个图形共享 Y 轴
问题描述
我有需要非常高分辨率的图形,因此我不能使用具有多轴的子图(导致ValueError: Image size of 102400x6400 pixel is too large)。但是,我仍然希望所有图形共享 y 轴,就像使用plt.subplots(sharey=True)
. 在这种情况下,我不关心只显示一个 y 轴,就像子图的结果一样。相反,我希望刻度处于相同位置并且它们之间的距离相同。
解决方案
当然,您可以简单地手动为两个轴设置相同的限制。事实上,这将是我在产生高质量输出时推荐的解决方案。
ax1.set_xlim(xmin, xmax)
ax2.set_xlim(xmin, xmax)
计算xmin
并且xmax
可以根据用例自动化。
如果需要完全自动化的解决方案或需要真正的共享,您可以在创建轴后共享轴。
import numpy as np
import matplotlib.pyplot as plt
x1 = np.arange(6)
y1 = np.tile([1,2],3)
x2 = np.arange(5,11)
y2 = np.tile([6,8],3)
fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()
ax1.plot(x1,y1)
ax2.plot(x2,y2)
ax1.get_shared_x_axes().join(ax1, ax2)
ax1.get_shared_y_axes().join(ax1, ax2)
ax2.autoscale()
plt.show()
推荐阅读
- reactjs - 当我使用 HoC 时,onClick 不会触发
- python - 当我的 Sprite 左右移动时,如何让我的背景滚动?游戏
- javascript - 尝试实现 CSRFProtector 失败并且令牌未生成或相同
- python - ModuleNotFoundError:没有名为“libs.strings”的模块
- python - 如何提高熊猫行操作的速度?
- c++ - “HMODULE”类型的参数与“const char*”类型的参数不兼容
- google-apps-script - Google Apps 脚本如何共享特定的电子表格?
- php - Laravel select onchange 更新请求查询参数
- java - recyclerview中的压扁图像
- ios - SwiftUI如何动态更新List