折れ線、棒、散布図
一般的なグラフを作成します
「折れ線、棒、散布図」はCoddyKit上の無料Python Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPython Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Python Academyコースには全4レッスンが含まれています。
基本となる3種類のグラフ
データに関する話の多くは、次の3種類のグラフで表現できます。
- 折れ線:時間のように順序のある軸での傾向を表します
- 棒:カテゴリを比較します
- 散布:2つの数値変数の関係を表します
それぞれは、Axesで使う1つのMatplotlibメソッドに対応します。
折れ線グラフ
折れ線グラフは点を順番に結びます。Matplotlibではax.plot(x, y)を使います。x軸に、日や時間の経過に伴う測定値のような意味のある順序がある場合に使用します。
折れ線グラフのデータは、単純な2つの並列なシーケンスです。
months = [1, 2, 3, 4, 5]
sales = [120, 150, 130, 170, 200]
for m, s in zip(months, sales):
print('Month', m, '->', s)
print('Trend:', 'up' if sales[-1] > sales[0] else 'down')棒グラフ
棒グラフは離散的なカテゴリを比較します。呼び出し方はax.bar(categories, values)です。棒はゼロから始まるため、高さを直接比較できます。
xの位置が連続した目盛りではなくラベルの場合は、棒グラフを使用します。
fruits = ['apple', 'banana', 'cherry']
counts = [30, 45, 15]
for f, c in zip(fruits, counts):
bar = '#' * (c // 5)
print(f.ljust(8), bar, c)横棒グラフ
カテゴリのラベルが長い場合は、横棒グラフのほうが読みやすくなります。Matplotlibではax.barh(categories, values)を使えます。
仕組みは同じで、向きだけが変わります。
散布図
散布図は、ax.scatter(x, y)を使ってデータポイントごとに1つのマーカーを描画します。2つの数値変数の間にある相関、クラスター、外れ値を明らかにできます。
折れ線グラフとは異なり、点は結びません。
heights = [150, 160, 170, 180, 190]
weights = [50, 60, 68, 78, 90]
pairs = list(zip(heights, weights))
print('Points:', pairs)
rising = all(weights[i] < weights[i+1] for i in range(len(weights)-1))
print('Positive trend:', rising)適切なグラフの選び方
答えようとしている問いに応じて選びます。
- 値は時間とともにどのように変化しますか? 折れ線
- 最も大きいカテゴリはどれですか? 棒
- 2つの変数には関係がありますか? 散布
誤った選択は読者を誤解させる可能性があります。たとえば、順序のないカテゴリに折れ線グラフを使う場合です。
複数の系列
同じAxes上でax.plot()を複数回呼び出すと、複数の折れ線を重ねて表示できます。呼び出すたびに別の系列が追加されます。後から凡例で区別できます。
同じ重ね合わせの考え方は、散布図や複合グラフの種類にも使えます。
series_a = [1, 2, 3, 4]
series_b = [4, 3, 2, 1]
for i in range(len(series_a)):
print('x', i, 'a', series_a[i], 'b', series_b[i])マーカーと線のスタイル
折れ線グラフでは書式文字列を指定できます。たとえばax.plot(x, y, 'o--')は、円形のマーカーを破線で結びます。
o円形のマーカー--破線r赤色
これらのショートカットを使うと、探索的なグラフをすばやく調整できます。
グループ化した棒グラフ
カテゴリごとに2つの値を比較するには、棒の位置をずらします。一方のグループを少し移動させ、棒が横に並ぶようにします。
位置は、インデックスに対する単純な算術演算で計算できます。
categories = ['Q1', 'Q2', 'Q3']
width = 0.4
for i, cat in enumerate(categories):
left_pos = i - width / 2
right_pos = i + width / 2
print(cat, 'group A at', left_pos, 'group B at', right_pos)バブルチャート
散布図では、マーカーのサイズに3つ目の変数を割り当てられます。ax.scatter(x, y, s=sizes)のように指定します。バブルが大きいほど値が大きいことを意味します。これにより、1つのグラフに3つの次元を詰め込めます。
バブル同士が重なって塊にならないよう、サイズは適切に保ちます。
誤解を招くグラフを避ける
グラフの種類には意味があるため、誤った選択は読者を誤解させる可能性があります。順序のないカテゴリに折れ線を引くと、実際には存在しない傾向があるように見えます。ゼロから始まらない棒グラフは、差を誇張します。
視覚的な表現がデータの構造と一致しているか、常に確認してください。
理解度チェック
問いに合ったグラフを選びましょう。
まとめ
これで、基本となる3つのグラフ呼び出しを理解できました。
ax.plot(x, y):順序のある軸での傾向ax.bar(cats, vals):カテゴリの比較ax.scatter(x, y):関係の表現。バブルにはs=を使います
1つのAxesに複数の系列を重ね、問いに合った種類を選びましょう。
よくある質問
「折れ線、棒、散布図」レッスンは無料ですか?
はい。「折れ線、棒、散布図」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Python Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Python Academyコースには全4レッスンが含まれています。
「折れ線、棒、散布図」で何を学びますか?
一般的なグラフを作成します ブラウザで直接実行するハンズオンコードでPython Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Python Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPython Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「折れ線、棒、散布図」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPython Academyレッスンでコードを書いて実行できますか?
はい。すべてのPython Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- FigureとAxes
- 折れ線、棒、散布図
- プロットのカスタマイズ
- サブプロットとレイアウト