Matplotlib 阴影图可视化

MatplotlibMatplotlibBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本实验将指导你使用不同技术在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中创建阴影图,包括为阴影图显示颜色条、在阴影图中避免异常值以及通过阴影和颜色显示不同变量。这些技术在各种应用中对数据可视化和探索可能会很有用。