我想在不同颜色和图例的同一个图上复制相同的情节,这是我的简约工作代码。
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')
以下是我在单独的数字中得到的两个情节,它们看起来不一样。我怎样才能做到这一点?谢谢你的帮助。
我想在同一个图中合并它们。我还想添加图例和标签。
答案 0 :(得分: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')