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 和其他函数自定义图形布局
添加回答
举报