Python matplotlib:在函数中绘制图,然后将每个图添加到单个子图中
我还没有找到解决这个问题的办法。。假设我定义了一些绘图函数,这样我就不必每次绘制类似的绘图时都复制粘贴大量的代码 我想做的是使用这个函数分别创建几个不同的图,然后将它们作为子图放到一个图中。这可能吗?我尝试了以下方法,但只返回空白:Python matplotlib:在函数中绘制图,然后将每个图添加到单个子图中,python,matplotlib,Python,Matplotlib,我还没有找到解决这个问题的办法。。假设我定义了一些绘图函数,这样我就不必每次绘制类似的绘图时都复制粘贴大量的代码 我想做的是使用这个函数分别创建几个不同的图,然后将它们作为子图放到一个图中。这可能吗?我尝试了以下方法,但只返回空白: import numpy as np import matplotlib.pyplot as plt # function to make boxplots def make_boxplots(box_data): fig, ax = plt.subpl
import numpy as np
import matplotlib.pyplot as plt
# function to make boxplots
def make_boxplots(box_data):
fig, ax = plt.subplots()
box = ax.boxplot(box_data)
#plt.show()
return ax
# make some data:
data_1 = np.random.normal(0,1,500)
data_2 = np.random.normal(0,1.1,500)
# plot it
box1 = make_boxplots(box_data=data_1)
box2 = make_boxplots(box_data=data_2)
plt.close('all')
fig, ax = plt.subplots(2)
ax[0] = box1
ax[1] = box2
plt.show()
我倾向于使用以下模板
def plot_something(data, ax=None, **kwargs):
ax = ax or plt.gca()
# Do some cool data transformations...
return ax.boxplot(data, **kwargs)
然后,您可以通过调用plot\u something(my\u data)
来试验您的绘图功能,并且您可以像这样指定要使用的轴
fig, (ax1, ax2) = plt.subplots(2)
plot_something(data1, ax1, color='blue')
plot_something(data2, ax2, color='red')
通过添加kwargs
可以将任意参数(如标签、线样式或颜色)传递给打印功能
行ax=ax或plt.gca()
使用您指定的轴,或从matplotlib获取当前轴(如果尚未创建任何轴,则可能是新轴)