Jan-Bert
Jan-Bert

Reputation: 1005

add new plot to existing figure

I have a script with some plots ( see example code). After some other things i want to add a new plot to an existing one. But when i try that it add the plot by the last created figure(now fig2). I can't figure out how to change that...

import matplotlib.pylab as plt
import numpy as np

n = 10
x1 = np.arange(n)
y1 = np.arange(n)    

fig1 = plt.figure()
ax1 = fig1.add_subplot(111)
ax1.plot(x1,y1)
fig1.show()

x2 = np.arange(10)
y2 = n/x2

# add new data and create new figure
fig2 = plt.figure()
ax2 = fig2.add_subplot(111)
ax2.plot(x2,y2)
fig2.show()

# do something with data to compare with new data
y1_geq = y1 >= y2
y1_a = y1**2
ax1.plot(y1_geq.nonzero()[0],y1[y1_geq],'ro')
fig1.canvas.draw

Upvotes: 2

Views: 57820

Answers (1)

albert
albert

Reputation: 8583

Since your code is not runnable without errors I'll provide a sample snippet showing how to plot several data in same graph/diagram:

import matplotlib.pyplot as plt

xvals = [i for i in range(0, 10)]
yvals1 = [i**2 for i in range(0, 10)]
yvals2 = [i**3 for i in range(0, 10)]

f, ax = plt.subplots(1)
ax.plot(xvals, yvals1)
ax.plot(xvals, yvals2)

So the basic idea is to call ax.plot() for all datasets you need to plot into the same plot.

Upvotes: 11

Related Questions