Matplotlibでシンプルなロリポップチャート(棒付きグラフ)を作成する方法
Matplotlibを使えば、ロリポッププロット(lollipop plot)と呼ばれる、線の先端にマーカーが付いた視覚的に魅力的なグラフを簡単に作成できます。以下の手順に従って実装してみましょう。
作成手順
図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
2次元の、サイズ変更可能で異種混在も許容する表形式データを持つデータフレーム df を作成します。
sort_values() メソッドを使用して、値の昇順に並べ替えたデータフレームを作成します。
データフレームのインデックス範囲に対応する数値のリストを作成します。
並べ替えたデータフレームをもとに、stem プロット(茎葉プロット)を作成します。
xticks() メソッドを使って、X軸の目盛り位置とラベルを設定します。
show() メソッドを呼び出して、図を画面に表示します。
コード例
import numpy as np
from matplotlib import pyplot as plt
import pandas as pd
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
df = pd.DataFrame({'group': list(map(chr, range(65, 85))), 'values': np.random.uniform(size=20)})
ordered_df = df.sort_values(by='values')
my_range = range(1, len(df.index) + 1)
plt.stem(ordered_df['values'])
plt.xticks(my_range, ordered_df['group'])
plt.show()
このコードでは、まず A〜T の20個のグループ名と、0〜1の一様乱数からなる値を持つデータフレームを生成しています。その後、値で並べ替えてから stem プロットとして描画することで、値が小さい順に整列した見やすいロリポップチャートが完成します。
出力結果

実行すると、各グループの値が昇順に並んだ縦棒状のマーカー付きグラフが表示されます。通常の棒グラフと比べて視覚的なノイズが少なく、多数のカテゴリの大小関係を比較する際に特に有効です。
-
MatplotlibのヒストグラムでX軸ラベルを各ビンの中央に配置する方法
Matplotlibのヒストグラムプロットでは、デフォルトのままではX軸の目盛りラベルがビン(階級)の境界線上に表示されます。これを各バー(パッチ)の中央に配置するには、各パッチの中間点を計算し、xticks()メソッドを使って目盛りラベルを適切な位置に設定します。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。NumPyを使って、標準正規分布に従うランダムなサンプルデータxを作成します。ビン(階級)の数を格納する変数を初期化します。hist()メソッドを使用してヒストグラムを描画します。戻り値として得られるpatchesから、各バーの中央位置(_x0と_x1
-
Matplotlibで複数のX軸・Y軸をプロットする方法(twinx / twinyの使い方)
データ分析や可視化では、スケールの異なる2つのデータ系列を同じグラフ上に重ねて表示したいケースがよくあります。Matplotlibでは、twinx() メソッドや twiny() メソッドを使うことで、X軸またはY軸を共有しながら独立したもう一方の軸を持つグラフを簡単に作成できます。 この記事では、左右に異なるY軸を持つグラフを作成する手順を、具体的なコード例とともに解説します。 複数のY軸を持つグラフの作成手順 以下の手順で、左と右に別々のY軸スケールを持つプロットを作成できます。 subplots() メソッドを使用して、図(figure)とサブプロット(axes)を作成します。 最初の