相关疑难解决方法(0)

Matplotlib不同大小的子图

我需要在图中添加两个子图.一个子图需要大约是第二个(相同高度)的三倍.我使用GridSpeccolspan论证完成了这个,但我想这样做,figure所以我可以保存为PDF.我可以使用figsize构造函数中的参数调整第一个数字,但是如何更改第二个图的大小?

python plot matplotlib figure

206
推荐指数
6
解决办法
24万
查看次数

当数据限制不同时,使用多个轴创建相等的方形(方形)图?

我想使用多个轴创建一个方形图,make_axes_locateablematplotlib文档中所示.然而,虽然这适用于x和y数据具有相同范围的图,但是当范围是不同的数量级时,它不起作用.

import numpy as np
import matplotlib.pyplot as plt

from mpl_toolkits.axes_grid1 import make_axes_locatable

x = np.random.normal(512, 112, 240)
y = np.random.normal(0.5, 0.1, 240)

_, ax = plt.subplots()
divider = make_axes_locatable(ax)

xhax = divider.append_axes("top", size=1, pad=0.1, sharex=ax)
yhax = divider.append_axes("right", size=1, pad=0.1, sharey=ax)

ax.scatter(x, y)
xhax.hist(x)
yhax.hist(y, orientation="horizontal")

x0,x1 = ax.get_xlim()
y0,y1 = ax.get_ylim()
ax.set_aspect(abs(x1-x0)/abs(y1-y0))

plt.show()
Run Code Online (Sandbox Code Playgroud)

虽然此代码使用的set_aspect答案如我如何制作matplotlib散点图方块?轴未正确修改,如下所示:

在此输入图像描述

我尝试修复此问题:

ax.set_aspect(abs(x1-x0)/abs(y1-y0), share=True)
Run Code Online (Sandbox Code Playgroud)

但这导致了以下结果:

在此输入图像描述

在调用scatter之后和创建两个直方图轴之前设置方面似乎没有任何效果,即使它看起来是在文档示例中完成的.当数据范围相同时,此代码可以正常工作:

在此输入图像描述

更新:此问题的一个主要限制是使用make_axes_locateable而不是GridSpec在下面的评论中讨论.我正在处理的问题涉及创建绘图函数,接受Axes对象进行处理和修改,而不需要了解图中的图形或任何其他轴,如下面的代码所示:

import numpy as np
import …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

6
推荐指数
1
解决办法
377
查看次数

标签 统计

matplotlib ×2

python ×2

figure ×1

plot ×1