Matplotlib 阴影图可视化

Beginner

This tutorial is from open-source community. Access the source code

简介

本实验将指导你使用不同技术在 Matplotlib 中创建阴影图的过程。你将学习如何为阴影图显示颜色条、在阴影图中避免异常值以及通过阴影和颜色显示不同变量。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们将立即为你解决问题。

为阴影图显示颜色条

在这一步中,你将学习如何为阴影图显示正确的数字颜色条。

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.colors import LightSource, Normalize

def display_colorbar():
    """为阴影图显示正确的数字颜色条。"""
    y, x = np.mgrid[-4:2:200j, -4:2:200j]
    z = 10 * np.cos(x**2 + y**2)

    cmap = plt.cm.copper
    ls = LightSource(315, 45)
    rgb = ls.shade(z, cmap)

    fig, ax = plt.subplots()
    ax.imshow(rgb, interpolation='bilinear')

    ## 为颜色条使用代理艺术家……
    im = ax.imshow(z, cmap=cmap)
    im.remove()
    fig.colorbar(im, ax=ax)

    ax.set_title('为阴影图使用颜色条', size='x-large')

在阴影图中避免异常值

在这一步中,你将学习如何使用自定义规范来控制阴影图中显示的 z 范围。

def avoid_outliers():
    """使用自定义规范来控制阴影图中显示的 z 范围。"""
    y, x = np.mgrid[-4:2:200j, -4:2:200j]
    z = 10 * np.cos(x**2 + y**2)

    ## 添加一些异常值……
    z[100, 105] = 2000
    z[120, 110] = -9000

    ls = LightSource(315, 45)
    fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(8, 4.5))

    rgb = ls.shade(z, plt.cm.copper)
    ax1.imshow(rgb, interpolation='bilinear')
    ax1.set_title('完整的数据范围')

    rgb = ls.shade(z, plt.cm.copper, vmin=-10, vmax=10)
    ax2.imshow(rgb, interpolation='bilinear')
    ax2.set_title('手动设置范围')

    fig.suptitle('在阴影图中避免异常值', size='x-large')

通过阴影和颜色显示不同变量

在这一步中,你将学习如何通过阴影和颜色显示不同变量。

def shade_other_data():
    """演示如何通过阴影和颜色显示不同变量。"""
    y, x = np.mgrid[-4:2:200j, -4:2:200j]
    z1 = np.sin(x**2)  ## 用于生成山体阴影的数据
    z2 = np.cos(x**2 + y**2)  ## 用于设置颜色的数据

    norm = Normalize(z2.min(), z2.max())
    cmap = plt.cm.RdBu

    ls = LightSource(315, 45)
    rgb = ls.shade_rgb(cmap(norm(z2)), z1)

    fig, ax = plt.subplots()
    ax.imshow(rgb, interpolation='bilinear')
    ax.set_title('通过一个变量设置阴影,通过另一个变量设置颜色', size='x-large')

总结

在本实验中,你学习了如何使用不同技术在 Matplotlib 中创建阴影图,包括为阴影图显示颜色条、在阴影图中避免异常值以及通过阴影和颜色显示不同变量。这些技术在各种应用中对数据可视化和探索可能会很有用。