python - matplotlib 中共享轴方形子图的新 pythonic 样式?

标签 python numpy matplotlib scipy

相关:plotting autoscaled subplots with fixed limits in matplotlib

我想使用 subplots 新的紧凑样式制作一组相同比例的子图,如 http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.subplots并让它们是正方形的。

我试过:

fig, axes = subplots(numplots, 1, sharex=True, sharey=True, adjustable='box', aspect='equal')

但我发现这些关键字参数并没有在subplots包装器中实现。有什么办法吗?

重申一下,我们的目标只是让共享轴,这样所有数据都在同一比例尺上,并且绘图是正方形的。

最佳答案

只需使用 adjustable='box-forced' 而不是 adjustable='box'

正如@cronos 提到的,您可以使用 subplot_kw kwarg 传递它(subplots 的附加关键字参数传递给 Figure不是 Axes,因此需要 subplot_kw)。

相反,我将使用 setp,它基本上只执行 for item in sequence: item.set(**kwargs)。 (所有 matplotlib 艺术家都有一个 set 方法,可以类似于 matlab 的 set 使用。)

哪一个是“更好”的方法将取决于您在做什么。很多人会争辩说 setp 非常“非 Pythonic”,但我看不出它有什么问题。

举个简单的例子:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(ncols=3, sharex=True, sharey=True)
plt.setp(axes.flat, aspect=1.0, adjustable='box-forced')

axes[0].plot(range(50))

plt.show()

enter image description here

我现在忘记了两种不同的可调框样式的原因。我记得我第一次遇到它时真的很困惑,我仔细研究了代码,发现其中有一些明显的原因……不过我现在不记得那个原因是什么了。

关于python - matplotlib 中共享轴方形子图的新 pythonic 样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13629994/

相关文章:

python - 图例中的分割标记和线条 - Matplotlib

Python实时绘制ROS数据

Python ipywidgets : create a savefig button

pandas - Pandas 两列之间的时差

python - 灰度图像至 3 个 channel

python-2.7 - 修复 Anaconda 中的 matplotlib/numpy 依赖 hell

python - crontab、python脚本运行失败

python - 具体正则表达式搜索python

python - 在回调中反向转换 ctypes.py_object

python - while 循环中的 GeneratorExit