2 回答

TA貢獻1798條經驗 獲得超3個贊
我建議采用這種方法,其中指定要在函數中繪制的軸:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
def Spectra(data, ax):
ax.plot(data)
def PlotIntensity(data, ax):
ax.hist(data)
def SeabornScatter(data, ax):
sns.scatterplot(data, data, ax = ax)
spectrum = np.random.random((1000,))
plt.figure()
ax1 = plt.subplot(1,3,1)
Spectra(spectrum, ax1)
ax2 = plt.subplot(1,3,2)
SeabornScatter(spectrum, ax2)
ax3 = plt.subplot(1,3,3)
PlotIntensity(spectrum, ax3)
plt.tight_layout()
plt.show()
您可以通過非常不同的方式為子圖指定格網,您可能還想查看 gridspec 模塊。

TA貢獻1788條經驗 獲得超4個贊
一種方法是:
f = plt.figure()
gs = f.add_gridspec(2,2)
ax = f.add_subplot(gs[0,:])
將“2,2”視為添加 2 行 x 2 列。在第三行“gs[0,:]”告訴在第0行(所有列)上添加一個圖表。這將在頂部創建圖表。請注意,索引以 0 開頭,而不是以 1 開頭。
要添加“eucplot”,您必須在第 1 行和第 0 列上調用不同的軸:
ax2 = f.add_subplot(gs[1,0])
最后,“barplot”將進入第1行第1列的另一個軸:
ax3 = f.add_subplot(gs[1,1])
有關進一步的參考,請參閱此處的此站點:使用 GridSpec 和其他函數自定義圖形布局
添加回答
舉報