Hi there,
I have the following simple code to plot a (static) fill_between region in a given plot.
import numpy as np
import matplotlib. pyplot as plt
plt.figure()
ax=plt.axes()
ax.set_xlim([0,10000])
x = np.linspace(6000.,7000.)
y = np.ones(np.shape(x))
plt.fill_between(x,y)
I would like now to animate this band (which is a PolyCollection object, and not a Line2D one) so that it moves smoothly to the right up together with being stretched, that is, to the new x positions: .7200, 8400. I saw several animations in the matplotlib homepage, but they only looped over line or image objects, not polycollection ones, such as fill_between… Is this possible?
In stackoverflow there is this link: http://stackoverflow.com/questions/16120801/matplotlib-animate-fill-between-shape, which might solve this question but I was not able to understand it fully in order to have a simple minmal working example. If that is the right direction, I would appreciate immensely if someone could provide such an example!
Thanks in advance
···
–
#######################################
Prof. Mauricio Ortiz Calvao
Federal University of Rio de Janeiro
Institute of Physics, P O Box 68528
CEP 21941-972 Rio de Janeiro, RJ
Brazil
Email: orca@…1184…
Phone: (55)(21)25627483
Homepage: http://www.if.ufrj.br/~orca
#######################################
Hi Mauricio,
Patch objects are a bit more difficult to work with than line objects, because unlike line objects are a step removed from the input data supplied by the user. There is an example similar to what you want to do here: http://matplotlib.org/examples/animation/histogram.html
Basically, you need to modify the vertices of the path at each frame. It might look something like this:
from matplotlib import animation
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_xlim([0,10000])
x = np.linspace(6000.,7000., 5)
y = np.ones_like(x)
collection = plt.fill_between(x, y)
def animate(i):
path = collection.get_paths()[0]
path.vertices[:, 1] *= 0.9
animation.FuncAnimation(fig, animate,
frames=25, interval=30)
Take a look at path.vertices to see how they’re laid out.
Hope that helps,
Jake
···
On Sat, Feb 1, 2014 at 7:44 AM, Mauricio Calvao <mocalvao@…149…> wrote:
Hi there,
I have the following simple code to plot a (static) fill_between region in a given plot.
import numpy as np
import matplotlib. pyplot as plt
plt.figure()
ax=plt.axes()
ax.set_xlim([0,10000])
x = np.linspace(6000.,7000.)
y = np.ones(np.shape(x))
plt.fill_between(x,y)
I would like now to animate this band (which is a PolyCollection object, and not a Line2D one) so that it moves smoothly to the right up together with being stretched, that is, to the new x positions: .7200, 8400. I saw several animations in the matplotlib homepage, but they only looped over line or image objects, not polycollection ones, such as fill_between… Is this possible?
In stackoverflow there is this link: http://stackoverflow.com/questions/16120801/matplotlib-animate-fill-between-shape, which might solve this question but I was not able to understand it fully in order to have a simple minmal working example. If that is the right direction, I would appreciate immensely if someone could provide such an example!
Thanks in advance
–
#######################################
Prof. Mauricio Ortiz Calvao
Federal University of Rio de Janeiro
Institute of Physics, P O Box 68528
CEP 21941-972 Rio de Janeiro, RJ
Brazil
Email: orca@…1184…
Phone: (55)(21)25627483
Homepage: http://www.if.ufrj.br/~orca
#######################################
WatchGuard Dimension instantly turns raw network data into actionable
security intelligence. It gives you real-time visual feedback on key
security issues and trends. Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
Thank you Jake.
I will take a look at this example with care.
Cheers!
···
On Sun, Feb 2, 2014 at 2:10 PM, Jacob Vanderplas <jakevdp@…1179…> wrote:
Hi Mauricio,
Patch objects are a bit more difficult to work with than line objects, because unlike line objects are a step removed from the input data supplied by the user. There is an example similar to what you want to do here: http://matplotlib.org/examples/animation/histogram.html
Basically, you need to modify the vertices of the path at each frame. It might look something like this:
from matplotlib import animation
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_xlim([0,10000])
x = np.linspace(6000.,7000., 5)
y = np.ones_like(x)
collection = plt.fill_between(x, y)
def animate(i):
path = collection.get_paths()[0]
path.vertices[:, 1] *= 0.9
animation.FuncAnimation(fig, animate,
frames=25, interval=30)
Take a look at path.vertices to see how they’re laid out.
Hope that helps,
Jake
–
#######################################
Prof. Mauricio Ortiz Calvao
Federal University of Rio de Janeiro
Institute of Physics, P O Box 68528
CEP 21941-972 Rio de Janeiro, RJ
Brazil
Email: orca@…1184…
Phone: (55)(21)25627483
Homepage: http://www.if.ufrj.br/~orca
#######################################
On Sat, Feb 1, 2014 at 7:44 AM, Mauricio Calvao <mocalvao@…149…> wrote:
Hi there,
I have the following simple code to plot a (static) fill_between region in a given plot.
import numpy as np
import matplotlib. pyplot as plt
plt.figure()
ax=plt.axes()
ax.set_xlim([0,10000])
x = np.linspace(6000.,7000.)
y = np.ones(np.shape(x))
plt.fill_between(x,y)
I would like now to animate this band (which is a PolyCollection object, and not a Line2D one) so that it moves smoothly to the right up together with being stretched, that is, to the new x positions: .7200, 8400. I saw several animations in the matplotlib homepage, but they only looped over line or image objects, not polycollection ones, such as fill_between… Is this possible?
In stackoverflow there is this link: http://stackoverflow.com/questions/16120801/matplotlib-animate-fill-between-shape, which might solve this question but I was not able to understand it fully in order to have a simple minmal working example. If that is the right direction, I would appreciate immensely if someone could provide such an example!
Thanks in advance
–
#######################################
Prof. Mauricio Ortiz Calvao
Federal University of Rio de Janeiro
Institute of Physics, P O Box 68528
CEP 21941-972 Rio de Janeiro, RJ
Brazil
Email: orca@…1184…
Phone: (55)(21)25627483
Homepage: http://www.if.ufrj.br/~orca
#######################################
WatchGuard Dimension instantly turns raw network data into actionable
security intelligence. It gives you real-time visual feedback on key
security issues and trends. Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-devel