使用单独的图例在一个图中复制Python中的相同图

问题描述 投票:2回答:1

我想在同一个图上用不同的颜色和图例复制相同的图,这是我的简约工作代码。

import matplotlib.pyplot as plt
import numpy as np

def make_layout(data):
    fig = plt.figure()

    ax = fig.add_subplot(111)

    p, = ax.plot(data,'o')

    p.set_markerfacecolor('g')
    # Presumably lots of complicated settings here

    return fig, ax, p

data = data = np.linspace(0,1)

f1, a1, p1 = make_layout(data)
f2, a2, p2 = make_layout(data**2)


p2.set_markerfacecolor('yellow')

这是我在单独的数字中得到的两个图,它们看起来不一样。我怎样才能做到这一点?感谢您的任何帮助。

enter image description here

enter image description here

我想在同一个图中合并它们。我还想添加图例和标签。

python matplotlib plot
1个回答
2
投票

您的绘图功能需要接受Axes对象作为参数。然后在函数外部创建图形和轴:

import matplotlib.pyplot as plt
import numpy as np

def make_layout(data, ax):
    p, = ax.plot(data, 'o')
    p.set_markerfacecolor('g')
    return p

因此,要绘制1轴上的所有内容,您需要:

data = data = np.linspace(0,1)
fig, ax = plt.subplots(nrows=1, ncols=1)
p1 = make_layout(data, ax)
p2 = make_layout(data**2, ax)
p2.set_markerfacecolor('yellow')

如果你想要单独的轴,你可以这样做:

data = data = np.linspace(0,1)
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2)
p1 = make_layout(data, ax1)
p2 = make_layout(data**2, ax2)
p2.set_markerfacecolor('yellow')
© www.soinside.com 2019 - 2024. All rights reserved.