簡體   English   中英

如何制作重疊的 matplotlib.pyplot 子圖?

[英]How to make matplotlib.pyplot subplots that overlap?

我正在學習如何使用子圖。 例如:

import numpy
import matplotlib.pyplot as plt

plt.figure(1)
plt.subplot(221)
plt.subplot(222)
plt.subplot(223)

plt.show()

plt.close(1)

我在圖 1 中得到 3 個子圖

現在我想用第一個中的其他子圖制作一個大的子圖。 我試過:

plt.figure(1)
plt.subplot(111)
plt.subplot(222)
plt.subplot(223)

但是第一個子情節消失了。

我的問題:是否可以重疊子圖?

謝謝你

如果您想完全控制子圖的大小和位置,請改用 Matplotlib add_axes方法。

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(6, 4))

ax1 = fig.add_axes([0.1, 0.1, 0.85, 0.85])
ax2 = fig.add_axes([0.4, 0.6, 0.45, 0.3])
ax3 = fig.add_axes([0.6, 0.2, 0.2, 0.65])

ax1.text(0.01, 0.95, "ax1", size=12)
ax2.text(0.05, 0.8, "ax2", size=12)
ax3.text(0.05, 0.9, "ax3", size=12)

plt.show()

伊格

無法使用plt.subplots()創建重疊的子圖。 此外, plt.subplot2grid將不起作用。

但是,您可以使用figure.add_subplot()方法創建它們。

import matplotlib.pyplot as plt
fig = plt.figure(1)
fig.add_subplot(111)
fig.add_subplot(222)
fig.add_subplot(223)

plt.show()

在此處輸入圖片說明

您可以使用mpl_toolkits.axes_grid1.inset_locator.inset_axes在現有圖形上創建插入軸。 我在最后添加了一個print語句,它顯示了兩個軸的列表。

import matplotlib.pyplot as plt
import mpl_toolkits.axes_grid1.inset_locator as mpl_il

plt.plot() 

ax2 = mpl_il.inset_axes(plt.gca(), width='60%', height='40%', loc=6)
ax2.plot()

print(plt.gcf().get_axes())
plt.show()

在現有圖形上創建插入軸

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM