Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To animate a shaded region between curves, create the figure and line once, then have a FuncAnimation callback update the line and replace the filled collection for each frame. Keep the animation object in a live variable while it runs. The example below uses a simple remove-and-redraw approach that is easy to adapt.

Animate a shaded region with FuncAnimation

fill_between(x, y1, y2) creates a filled collection between two curves; when y2 is omitted, the baseline is zero. The callback below updates a sine curve and shades the area between it and zero.

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

x = np.linspace(0, 2 * np.pi, 300)
fig, ax = plt.subplots()
ax.set(xlim=(x.min(), x.max()), ylim=(-1.2, 1.2))
ax.set_xlabel("x")
ax.set_ylabel("value")

line, = ax.plot(x, np.zeros_like(x), color="C0")
fill = ax.fill_between(x, 0, np.zeros_like(x), color="C0", alpha=0.35)

def update(frame):
    global fill  # Compact example; use a closure or state object in reusable code.
    y = np.sin(x + frame * 0.08)
    line.set_ydata(y)
    fill.remove()
    fill = ax.fill_between(x, 0, y, color="C0", alpha=0.35)
    return line, fill

ani = FuncAnimation(fig, update, frames=100, interval=30, blit=False)
plt.show()

The figure, axes, and line are created once. Each callback invocation receives a frame value, calculates the new data, updates the line, removes the previous filled collection, and creates its replacement. interval=30 sets a 30-millisecond delay between frames; it is not a promise of a particular playback rate, which also depends on drawing and the display environment.

Here, global fill keeps the example short by allowing the callback to replace the module-level variable. In reusable code, hold the current fill artist in a closure or a small state object instead.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Callback, blitting, and animation lifetime

A FuncAnimation frame function must return an iterable of the artists it changes. The example returns the line and the newly created fill collection. Keep the FuncAnimation instance—here, ani—referenced for as long as the animation should run; if it is garbage-collected, the animation can stop.

blit=True can reduce redraw work by reusing a background and drawing only changed artists, but it depends on the backend and callback behavior. When blitting is enabled, return every changed artist. Blitting also affects stacking: animated artists appear above previously drawn artists, while their relative order follows their z-order. Start with blit=False, then try blitting and check the result in the actual display or export setup. Replacing a fill collection every frame is straightforward for modest animations; if it is slow, investigate whether a persistent collection can be updated and benchmark that approach in context rather than assuming it will be faster.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

Handle masks, curve crossings, and step-shaped fills

Use where for conditional regions

The where argument selects spans to fill, but the mask is evaluated across adjacent x positions: an interval is filled only when both where[i] and where[i + 1] are true. A single isolated True therefore does not create a filled span. Build the mask with the intervals you actually intend to shade.

Account for intersections

If the boundary curves cross and the intended filled region should end or begin at the crossing, use interpolate=True. Without interpolation, the polygon is based on the supplied x nodes and may clip the region around the intersection.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Represent step functions

Set step to 'pre', 'post', or 'mid' when the fill should follow a step-function shape. These values specify where the step transitions occur.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Save or embed the animation

Matplotlib provides file-saving and HTML output routes. The writer you can use depends on the environment where the animation is generated; external tools may need to be installed. Choose for the destination, format, transparency requirements, and playback needs, and test the result with the intended viewer.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Destination Matplotlib route Writer or consideration
Standalone GIF Animation.save(...) Pillow or ImageMagick writer; availability depends on the environment.
Standalone video Animation.save(...) FFmpeg writer; verify that the required tool is available.
HTML5 video output Animation.to_html5_video() Useful for embedding video output; verify the resulting playback in the target.
JavaScript-based HTML output Animation.to_jshtml() Produces HTML/JavaScript output; test it in the page or notebook where it will be shown.

For example, save a GIF with ani.save("fill.gif", writer="pillow"), or generate HTML output with html = ani.to_jshtml(). These are example calls, not guarantees that a particular writer or playback environment is installed or supported.

If the fill uses transparency such as alpha=0.35, account for the output format. Matplotlib notes that PostScript does not support alpha and recommends GIF, PNG, PDF, or SVG for figures using alpha. That guidance concerns figure formats; it does not establish how every animation writer handles transparency, so check the selected writer and playback target.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Official references

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.