python - 将图表添加到 matplotlib 子网格

标签 python python-3.x matplotlib

我有以下 Matplotlib 图,有 2 个图表:

我用下面的代码创建的:

fig = plt.figure(facecolor='#131722',dpi=155, figsize=(8, 4))
ax1 = plt.subplot2grid((1,2), (0,0), facecolor='#131722')
ax2 = plt.subplot2grid((1,2), (0,1), facecolor='#131722')

现在我想添加两个图表,所以 ax3 和 ax4,每个都需要在两个图表的下方,它们应该具有两个图表的相同宽度,但高度是两个图表的一半更大的图表。我怎样才能做到这一点?我从这里尝试了各种解决方案 here但我正在努力获得预期的输出

最佳答案

您可以使用 plt.subplotsgridspec_kw 参数来实现这一点。这允许您指定网格的尺寸(在本例中为 2x2)和高度比:

f, ax = plt.subplots(2, 2 , gridspec_kw={"height_ratios": [2, 1]})
for cAx in ax.flatten():
    cAx.set_facecolor('#131722')
f.savefig("test.png", facecolor='#131722')

enter image description here

或者,您也可以创建一个 3x2 网格并指定前两个子图需要跨越两行:

fig = plt.figure(facecolor='#131722',dpi=155, figsize=(8, 6))
ax1 = plt.subplot2grid((3,2), (0,0), facecolor='#131722', rowspan=2)
ax2 = plt.subplot2grid((3,2), (0,1), facecolor='#131722', rowspan=2)
ax3 = plt.subplot2grid((3,2), (2,0), facecolor='#131722')
ax4 = plt.subplot2grid((3,2), (2,1), facecolor='#131722')

关于python - 将图表添加到 matplotlib 子网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62260986/

相关文章:

python - 绘制 Pandas 时间增量

python - 在 Python pandas autocorrelation_plot 中设置滞后数

python - 在 NumPy 中转置存储在一维数组中的矩阵的最快方法?

python - 加入字符串。生成器或列表理解?

python - 变量名似乎被覆盖

python-3.x - 在终端 debian 中运行 python 脚本 (file.py),错误 (<function b at 0x7f63232c01e0>)

python - 如何在python 3中将字节作为流读取

python - 继承 ElementTree 解析器以保留注释

python-3.x - 为什么在 Mac 上加载 tensorflow 会导致 "Process finished with exit code 132 (interrupted by signal 4: SIGILL)"?

python - Matplotlib:如何在绘图上方设置刻度标签