gpt4 book ai didi

python - 如何在 matplotlib.pyplot 中手动定位一个子图

转载 作者:行者123 更新时间:2023-11-30 23:01:47 25 4
gpt4 key购买 nike

如何重新定位第二行中的图形,使其相对于整个图形居中对齐。更一般地说,如何手动重新定位同一行中的任意位置的图形?

import matplotlib.pyplot as plt
m=0
for i in range(0,2):
for j in range(0,2):
if m <= 2:
ax = plt.subplot2grid((2,2), (i,j))
ax.plot(range(0,10),range(0,10))
m = m+1
plt.show()

谢谢。

enter image description here

最佳答案

使用GridSpec ,您可以创建可用于子图放置的任何维度的网格。

import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt

gs = gridspec.GridSpec(4, 4)

ax1 = plt.subplot(gs[:2, :2])
ax1.plot(range(0,10), range(0,10))

ax2 = plt.subplot(gs[:2, 2:])
ax2.plot(range(0,10), range(0,10))

ax3 = plt.subplot(gs[2:4, 1:3])
ax3.plot(range(0,10), range(0,10))

plt.show()

这将创建一个 4x4 网格,每个子图占用一个 2x2 子网格。这允许您将底部子图正确居中。

要使用与您的问题中使用的相同的 for 循环方法,您可以执行以下操作:

import matplotlib.gridspec as gridspec
import matplotlib.pyplot as plt

gs = gridspec.GridSpec(4, 4)
m = 0

for i in range(0, 4, 2):
for j in range(0, 4, 2):
if m < 3:
ax = plt.subplot(gs[i:i+2, j:j+2])
ax.plot(range(0, 10), range(0, 10))
m+=1
else:
ax = plt.subplot(gs[i:i+2, 1:3])
ax.plot(range(0, 10), range(0, 10))

plt.show()

这两个代码片段的结果是:

Plots

关于python - 如何在 matplotlib.pyplot 中手动定位一个子图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34799488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com