PythonのMatplotlibでグラフを描画する方法を完全ガイド!初心者でもわかる折れ線・棒グラフ
生徒
「Pythonを使って、売上の推移を折れ線グラフにしたり、アンケート結果を棒グラフにしたりしたいです。でも、プログラミングで図を描くなんて難しそうで……。」
先生
「大丈夫ですよ!Pythonには『Matplotlib(マットプロットリブ)』という、グラフ作成が得意な魔法のような道具があります。これを使えば、数字の羅列がパッと見てわかる図に大変身します。」
生徒
「マットプロットリブ……。名前は難しそうですが、私にも使いこなせますか?」
先生
「もちろんです!まずは基本の折れ線グラフと棒グラフの作り方から、ゆっくり丁寧に進めていきましょう!」
1. Matplotlib(マットプロットリブ)とは?
Matplotlib(マットプロットリブ)とは、Python(パイソン)というプログラミング言語で「グラフ」を描くためのライブラリです。「ライブラリ」というのは、便利な機能がぎゅっと詰まった「道具箱」のようなものだと考えてください。
私たちが普段、Excel(エクセル)でグラフを作るように、Pythonでも命令文を書くだけで、綺麗な図を作成できます。データ分析の世界では、数字を眺めるだけでなく、視覚的に表現することがとても重要です。これを「データの可視化(かし visualisation)」と呼びます。
Matplotlibを使えば、以下のようなことが簡単にできます。
- 時間の流れによる変化を見る「折れ線グラフ」
- 項目ごとの大きさを比べる「棒グラフ」
- データの散らばりを見る「散布図」
今回は、特によく使われる「折れ線グラフ」と「棒グラフ」に絞って、その書き方をマスターしていきましょう。
2. グラフを描く準備をしよう!ライブラリの読み込み
Pythonでグラフを描くためには、まず「これからMatplotlibを使いますよ!」という宣言をする必要があります。これをプログラミング用語で「インポート」と言います。
以下のコードは、Matplotlibの中でも特にグラフ描画に特化した「pyplot(パイプロット)」という機能を呼び出すための決まり文句です。
import matplotlib.pyplot as plt
# データを準備します
days = [1, 2, 3, 4, 5]
steps = [3000, 5000, 4000, 7000, 6000]
# グラフを描画する命令です
plt.plot(days, steps)
plt.show()
コードの中にある as plt という部分は、「Matplotlibのpyplotという名前は長いから、これからは plt というあだ名で呼びますね」という意味です。これで、毎回長い名前を打たなくて済むようになります。
また、最後に書かれている plt.show() は非常に重要です。これは「作成したグラフを画面に表示してください」という命令です。これを忘れると、コンピュータの中でグラフが完成していても、私たちの目には見えないので注意しましょう。
3. 基本中の基本!折れ線グラフを描く手順
折れ線グラフは、時間の経過とともに値がどう変わったかを確認するのに最適なグラフです。例えば、体重の変化や気温の推移などがこれにあたります。
Matplotlibで折れ線グラフを描くときは、plt.plot() という命令を使います。括弧の中には、横軸のデータと縦軸のデータを順番に入れます。
[ ](角括弧)で囲んで、カンマ , で区切って並べます。これをPythonでは「リスト」と呼びます。
import matplotlib.pyplot as plt
# 横軸(x軸):月
months = ["1月", "2月", "3月", "4月", "5月"]
# 縦軸(y軸):売上(万円)
sales = [100, 120, 90, 150, 130]
# 折れ線グラフを作成
plt.plot(months, sales)
# グラフを表示
plt.show()
実行すると、1月から5月までの売上が線で結ばれたグラフが表示されます。とてもシンプルですね!
※注意:お使いの環境(パソコンの設定)によっては、日本語が「豆腐」のような四角いマーク(文字化け)になってしまうことがあります。その場合は日本語フォントの設定が必要になりますが、まずはグラフが出ることを確認しましょう。
4. グラフを分かりやすく!タイトルとラベルの追加
先ほどのグラフは、線があるだけで「何を表しているのか」が分かりませんでした。誰が見ても内容が理解できるように、グラフにタイトルや軸の名前(ラベル)を付けてみましょう。
-
plt.title():グラフ全体のタイトル -
plt.xlabel():横軸(x軸)の名前 -
plt.ylabel():縦軸(y軸)の名前
import matplotlib.pyplot as plt
# データ
x = [1, 2, 3, 4, 5]
y = [10, 25, 15, 30, 20]
plt.plot(x, y)
# タイトルを追加
plt.title("Sample Graph")
# 軸ラベルを追加
plt.xlabel("Time")
plt.ylabel("Value")
plt.show()
このように名前を付けることで、グラフの説得力が一気に増します。パソコンで作業するときは、相手に何を伝えたいかを意識してこれらのラベルを設定するのがコツです。
5. 比較に最適!棒グラフ(plt.bar)の使い方
次に、項目ごとの違いを比較するのに便利な「棒グラフ」を作ってみましょう。例えば、好きな果物のアンケート結果や、クラスメイトのテストの点数を比較するときに使います。
棒グラフを描くときは、plt.bar() という命令を使います。使い方は折れ線グラフとほぼ同じで、横軸の項目と縦軸の数値を指定します。
import matplotlib.pyplot as plt
# 果物の名前(カテゴリー)
fruits = ["Apple", "Banana", "Cherry", "Orange"]
# 売れた数
counts = [50, 80, 45, 60]
# 棒グラフを作成
plt.bar(fruits, counts)
# タイトルを付ける
plt.title("Fruit Sales")
# 表示する
plt.show()
実行結果として、それぞれの果物の高さが売れた数に対応した棒グラフが表示されます。
棒グラフの良さは、一番高い棒がどれかを一目で判断できる点にあります。この例では「Banana(バナナ)」が一番売れていることがすぐに分かりますね。
6. グラフをもっとオシャレに!色や線のカスタマイズ
デフォルト(初期設定)のグラフでも十分ですが、色を変えたり線を太くしたりすることで、より見やすい資料になります。
plt.plot() や plt.bar() の括弧の中に、オプションを追加することで見た目を変更できます。
| 設定内容 | 書き方(例) | 説明 |
|---|---|---|
| 色 | color="red" |
赤、青、緑など好きな色に設定できます |
| 線の種類 | linestyle="--" |
点線や破線に変更できます(折れ線のみ) |
| 線の太さ | linewidth=3 |
数字を大きくすると太くなります |
| マーカー | marker="o" |
データの点に丸などの印を付けます |
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [5, 15, 10, 20]
# 赤色で、太さ3の、丸い点付きの折れ線グラフ
plt.plot(x, y, color="red", linewidth=3, marker="o")
plt.title("Customized Line Graph")
plt.show()
色を変えるだけで、重要なデータを目立たせることができるようになります。例えば、目標値は赤色、実績値は青色にする、といった使い分けが効果的です。
7. 複数のデータを1つのグラフにまとめる
「去年の売上」と「今年の売上」を同じグラフで比較したいときがありますよね。Matplotlibでは、plt.show() を実行する前に、描画の命令を複数回書くだけで、1つの図の中に複数の線を引くことができます。
import matplotlib.pyplot as plt
weeks = ["Week1", "Week2", "Week3", "Week4"]
shop_a = [20, 35, 30, 45]
shop_b = [25, 30, 40, 35]
# 2つのデータを重ねて描画
plt.plot(weeks, shop_a, label="Shop A", color="blue")
plt.plot(weeks, shop_b, label="Shop B", color="green")
# 「凡例(はんれい)」を表示する
plt.legend()
plt.title("Sales Comparison")
plt.show()
ここで新しく登場したのが plt.legend() です。これは「凡例(はんれい)」といって、どの色がどのデータを表しているのかという説明書きをグラフの隅に表示してくれる機能です。
label="名前" とセットで使うことで、「青い線はショップAですよ」と親切に教えてくれるようになります。
8. 作成したグラフを画像として保存する方法
せっかく作ったグラフですから、Wordやパワーポイントの資料に貼り付けたいですよね。画面に表示するだけでなく、画像ファイルとして保存する方法も覚えておきましょう。
保存には plt.savefig() という命令を使います。括弧の中には保存したいファイル名を入れます。
import matplotlib.pyplot as plt
x = ["A", "B", "C"]
y = [10, 20, 30]
plt.bar(x, y)
plt.title("My Graph")
# グラフを「my_graph.png」という名前で保存します
plt.savefig("my_graph.png")
# 保存した後に表示もする場合
plt.show()
これを実行すると、プログラムを実行している場所と同じフォルダに my_graph.png という画像ができあがります。これでいつでも資料作成に活用できますね。
保存の際の注意点として、plt.show() を先に書いてしまうと、表示が終わった瞬間にグラフのデータがクリアされてしまうことがあります。そのため、「保存(savefig)をしてから、表示(show)する」という順番を守るのがコツです。
9. 初心者がつまずきやすいポイントと解決策
Matplotlibを使い始めると、いくつか「あれ?」と思う場面に出くわすかもしれません。よくあるトラブルとその対策をまとめました。
-
グラフが表示されない:
一番多い原因はplt.show()の書き忘れです。コードの最後には必ずこの一文を入れましょう。 -
エラーが出て動かない:
import matplotlib.pyplot as pltのスペルが間違っていないか確認してください。一文字でも違うとコンピュータは認識してくれません。 -
データの数が合わない:
横軸のデータが5個なのに、縦軸のデータが4個しかないと、「数が合わないよ!」とエラーになります。リストの中身の数は必ず合わせるようにしましょう。
プログラミングは、最初はエラーが出るのが当たり前です。エラーメッセージが出たら「どこかが違うんだな」とパズルのように探してみるのが上達の近道です。
今回学んだ折れ線グラフと棒グラフが描けるようになれば、Pythonでのデータ分析の第一歩は完璧です。自分の持っている数字をいろいろな形のグラフにして、新しい発見を楽しんでくださいね!