gpt4 book ai didi

python - matplotlib:在函数中绘制图,然后将每个图添加到单个子图图中

转载 作者:太空狗 更新时间:2023-10-29 21:36:03 25 4
gpt4 key购买 nike

我一直没能找到解决这个问题的方法。假设我定义了一些绘图函数,这样我就不必每次制作类似的绘图时都复制粘贴大量代码...

我想做的是使用这个函数单独创建几个不同的图,然后将它们作为子图组合成一个图。这可能吗?我试过以下但它只返回空白:

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_something(my_data) 来试验您的绘图函数,您可以像这样指定要使用的轴。

fig, (ax1, ax2) = plt.subplots(2)
plot_something(data1, ax1, color='blue')
plot_something(data2, ax2, color='red')

添加 kwargs 允许您将任意参数传递给绘图函数,例如标签、线条样式或颜色。

ax = ax or plt.gca() 使用您指定的轴或从 matplotlib 获取当前轴(如果您尚未创建任何轴,则可能是新轴)。

关于python - matplotlib:在函数中绘制图,然后将每个图添加到单个子图图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48129222/

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