Matplotlibでfivethirtyeightスタイルシートを使って曲線をプロットする方法
Matplotlibには、グラフの見た目を手軽に変更できる「スタイルシート」機能が用意されています。その中でもfivethirtyeightは、米国のデータジャーナリズムサイトFiveThirtyEight風の洗練されたデザインが特徴で、データ分析の可視化に人気のスタイルです。
この記事では、fivethirtyeightスタイルシートを適用して曲線をプロットする具体的な手順を解説します。
実装の手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
plt.style.use()メソッドを使ってfivethirtyeightスタイルを有効にします。- NumPyを使用してx軸のデータポイントを作成します。
subplots()メソッドで図とサブプロットのセットを生成します。plot()メソッドを使って3本の曲線を描画します。set_title()でプロットにタイトルを設定します。show()メソッドで図を表示します。
コード例
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.style.use('fivethirtyeight')
x = np.linspace(0, 10)
fig, ax = plt.subplots()
ax.plot(x, np.sin(x) + x + np.random.randn(50))
ax.plot(x, np.sin(x) + 0.5 * x + np.random.randn(50))
ax.plot(x, np.sin(x) + 2 * x + np.random.randn(50))
ax.set_title("'fivethirtyeight' style sheet")
plt.show()
コードのポイント
np.linspace(0, 10)により、0から10までの範囲に50個の等間隔データポイントが生成されます。各曲線は正弦波(np.sin(x))に異なる係数を掛けた直線成分を加え、さらにnp.random.randn(50)によるランダムノイズを加えることで、実際のデータらしい揺らぎを持たせています。
plt.style.use('fivethirtyeight')の1行だけで、背景色・グリッド線・フォントなどが一括してFiveThirtyEight風のデザインに変わるのが魅力です。元のスタイルに戻したい場合は、plt.style.use('default')を実行します。
出力結果
上記のコードを実行すると、3本の曲線がfivethirtyeightスタイルで描画されたグラフが表示されます。太めの線と特徴的なグレーのグリッド線により、視認性の高いチャートになります。
-
MatplotlibでグラフのX軸とY軸を入れ替える方法
Matplotlibでグラフの軸(X軸とY軸)を入れ替えたい場合、subplots()メソッドを使って図(figure)を作成し、2つのサブプロットを追加する方法が便利です。1つ目のサブプロットに曲線を描画し、そのX・Yデータを抽出して、2つ目のサブプロットの曲線に設定し直すことで、軸を入れ替えたグラフを作成できます。 手順 NumPyを使って、xとyのデータポイントを作成します。 図を作成し、2つのサブプロットを追加します。 両方のサブプロットにタイトルを設定します。 plot()メソッドを使って、xとyのデータポイントをプロットします。 get_xdata()とget_ydata()を使
-
Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説
Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線