python - 在具有单独图例的一个图中复制 Python 中的相同图

标签 python matplotlib plot

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

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

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

最佳答案

您的绘图函数需要接受一个 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')

关于python - 在具有单独图例的一个图中复制 Python 中的相同图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48572562/

相关文章:

python - Pandas Dataframe 自动缩短字符串?

python - 未定义 DISPLAY 时使用 matplotlib 生成 PNG

r - 在 ggplot2 中使用 geom_point 有条件地使用抖动

plot - DrRacket 图 "could not determine sensible plot bounds"

python - 如果 pandas series 的值是一个列表,如何获取每个元素的子列表?

python - 用python提取复杂的链接

Python Selenium : Unable to locate the element (//input[@type ='file' ]')

python - 从 pandas 数据框中重新排列条形图中的分组

python - 如何检测是否为matplotlib轴生成了双轴

python - 如何从 pandas 数据框中选择要绘制的列而不寻址其名称