matplotlib:在函数中制作图表,然后将每个添加到单个子图图形中

2024-06-28 19:19:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想做的是使用这个函数分别创建几个不同的图,然后将它们作为子图放在一起。这可能吗?我尝试过以下操作,但它只返回空白:

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()

Tags: 函数importbox绘图datamakeasshow
1条回答
网友
1楼 · 发布于 2024-06-28 19:19:58

我倾向于使用以下模板

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获取当前轴(如果您尚未创建任何轴,则可能是新轴)。

相关问题 更多 >