[Matplotlib-users] Problem doing multiple independent plots
Ryan May
rmay31 at gmail.com
Tue Sep 26 18:20:08 EDT 2017
William,
Don't use plt to call all of the methods, but directly use them off of the
Figure (e.g. fig1) and Axes (e.g. ax1) instances you create:
import numpy as np, matplotlib.pyplot as plt
def problem(xdata, ydata, i):
color_dic = {1: "red", 2: "green", 3: "blue", 4: "cyan"}
fig1, ax1 = plt.subplots()
ax1.plot(xdata, ydata, linestyle = '-', color = color_dic[i])
fig1.savefig('Plot for run_num ' + str(i))
return
def problem_alt(xdata, ydata, i):
return
t = np.arange(0.0, 2.0, 0.01)
fig2, ax2 = plt.subplots()
for i in range(0,4):
i = i+1
problem(t, np.sin(i*np.pi*3*t), i)
problem_alt(t, np.sin(i*np.pi*3*t), i)
ax2.set_xlim(xmin = 0.0, xmax = 20.0)
ax2.plot((t+i*3), np.sin(i*np.pi*3*(t+i*3)))
fig2.savefig("Global Plot")
At least, I think that's what you're going for. Note I removed some extra
calls to figure() and subplot() that I don't think were helping you.
Ryan
On Tue, Sep 26, 2017 at 3:04 PM, William Ray Wing <wrw at mac.com> wrote:
> Below is a simplified version of a much more elaborate analysis code, but
> it will illustrate the problem I’m having. What I want to do is
> repetitively call an analysis function from my main code and plot the
> results of that analysis (a curve fit, although thats immaterial here)
> while in that function. Back in the main code, I want to plot the results
> of all the curve fits on a single plot. They share a common x axis, but
> appear at different points along it. What seems to be happening is that
> the gets set in the function, and doesn’t get set back in the main code.
>
> Note that there are two versions of the “problem” function, problem and
> problem_alt. If you change the main code (move the #), you get the plot I
> want at the end of the main.
>
> There must be something I can call or set to recover the settings
> associated with figure(2), but I can’t seem to figure it out. Any help
> would be appreciated.
>
> Thanks,
> Bill Wing
>
> #! /usr/bin/env python
> # -*- coding: utf-8 -*-
> #
> # A simple skeleton of the program to work out the plotting problem
> #
> import numpy as np, matplotlib.pyplot as plt
> #
> # skeleton subroutines
> #
>
> def problem(xdata, ydata, i):
> color_dic = {1: "red", 2: "green", 3: "blue", 4: "cyan"}
> plt.figure(1)
> fig1, ax1 = plt.subplots()
> plt.subplot()
> plt.plot(xdata, ydata, linestyle = '-', color = color_dic[i])
> plt.savefig('Plot for run_num ' + str(i))
> return
>
> def problem_alt(xdata, ydata, i):
> return
>
>
> t = np.arange(0.0, 2.0, 0.01)
> plt.figure(2)
> fig2, ax2 = plt.subplots()
>
> for i in range(0,4):
> i = i+1
> problem(t, np.sin(i*np.pi*3*t), i)
> problem_alt(t, np.sin(i*np.pi*3*t), i)
> ax2.set_xlim(xmin = 0.0, xmax = 20.0)
> plt.subplot()
> plt.plot((t+i*3), np.sin(i*np.pi*3*(t+i*3)))
>
> plt.savefig("Global Plot")
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users
>
--
Ryan May
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20170926/bfe18b3f/attachment.html>
More information about the Matplotlib-users
mailing list