Matplotlib のグレースケールスタイルシート

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Matplotlib は、Python におけるデータ可視化ライブラリであり、さまざまなチャート、グラフ、プロットを作成するために使用されます。魅力的なビジュアライゼーションを作成するために、幅広いカスタマイズオプションを提供しています。そのオプションの 1 つが、スタイルシートです。スタイルシートは、プロットの見た目を定義する設定のコレクションです。この実験では、すべての色をグレースケールに変更する「グレースケール」スタイルシートを探ります。

VM のヒント

VM の起動が完了した後、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook にアクセスして練習します。

場合によっては、Jupyter Notebook が読み込み終了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリのインポート

まずは必要なライブラリをインポートします。NumPy と Matplotlib が必要になります。

import matplotlib.pyplot as plt
import numpy as np

乱数シードの設定

結果の再現性を保証するために、次のコードを使って乱数シードを設定します。

np.random.seed(19680801)

カラーサイクルの例を示す関数の定義

color_cycle_example という関数を定義します。この関数は軸オブジェクトを入力として受け取り、カラーサイクル内の各色に対して正弦波を描画します。カラーサイクルは rcParams によって定義されます。

def color_cycle_example(ax):
    L = 6
    x = np.linspace(0, L)
    ncolors = len(plt.rcParams['axes.prop_cycle'])
    shift = np.linspace(0, L, ncolors, endpoint=False)
    for s in shift:
        ax.plot(x, np.sin(x + s), 'o-')

画像とパッチの例を示す関数の定義

image_and_patch_example という関数を定義します。この関数は軸オブジェクトを入力として受け取り、ランダムな画像を描画し、そのプロットにパッチを追加します。

def image_and_patch_example(ax):
    ax.imshow(np.random.random(size=(20, 20)), interpolation='none')
    c = plt.Circle((5, 5), radius=5, label='patch')
    ax.add_patch(c)

グレースケールのスタイルシートを使用する

次のコードを使って、スタイルシートを「グレースケール」に設定します。

plt.style.use('grayscale')

サブプロットの作成

次のコードを使って、2 つのサブプロット付きのグラフを作成します。

fig, (ax1, ax2) = plt.subplots(ncols=2)
fig.suptitle("'grayscale' style sheet")

例を描画する

以下のコードを使って、最初のサブプロットにカラーサイクルの例を、2 番目のサブプロットに画像とパッチの例を描画します。

color_cycle_example(ax1)
image_and_patch_example(ax2)

グラフを表示する

以下のコードを使ってグラフを表示します。

plt.show()

まとめ

この実験では、Matplotlib で「グレースケール」のスタイルシートを使って、グレースケールですべての色を持つグラフを作成する方法を学びました。また、サブプロットを作成し、例を描画し、グラフを表示する方法も学びました。スタイルシートは、グラフの見た目をカスタマイズする優れた方法であり、Matplotlib には選択できる多くの組み込みのスタイルシートが用意されています。