序章

Pythonはデータの処理に最適です。 多くの場合、データセットには複数の変数と多くのインスタンスが含まれているため、何が起こっているのかを理解するのは困難です。 データの視覚化は、データのパターンを特定するのに役立つ便利な方法です。

たとえば、あなたが不動産業者であり、家の築年数とその販売価格の関係を理解しようとしているとします。 データに5軒の家の1ブロックが含まれている場合、何が起こっているのかを把握するのはそれほど難しくありません。 ただし、500戸の町全体のデータを使用したいとします。 そうなると、年齢が価格にどのように影響するかを理解するのがかなり難しくなります。 販売価格と年齢をプロットしてデータを視覚化することで、両者の間に存在する関係に間違いなく光を当てることができます。

視覚化は、特にデータに精通していない人に、普遍的な方法で概念を伝えるための迅速で簡単な方法です。 データを扱うときはいつでも、視覚化が分析の必要な部分であることがよくあります。

もともとジョンDによって書かれた2Dプロットライブラリmatplotlibを使用します。 それ以来、ハンターは非常に活発なオープンソース開発コミュニティプロジェクトになりました。 これにより、高品質の線図、散布図、ヒストグラム、棒グラフなどを生成できます。 各プロットは異なる方法でデータを表示し、データの最も有益なプロットを決定する前に、さまざまなタイプのプロットを試してみると便利なことがよくあります。 視覚化は芸術と科学の融合であることに留意するのは良いことです。

視覚化の重要性を考慮して、このチュートリアルでは、matplotlibを使用してPythonでデータをプロットする方法について説明します。 少量のデータセットを使用して散布図を生成し、タイトルや凡例などの情報をプロットに追加し、プロットポイントの外観を変更してプロットをカスタマイズします。

このチュートリアルを終了すると、Pythonでデータをプロットできるようになります。

前提条件

このチュートリアルでは、Python 3をインストールし、コンピューターにローカルプログラミング環境をセットアップする必要があります。 そうでない場合は、適切なインストールとオペレーティングシステムのセットアップガイドに従ってセットアップできます。

ステップ1—matplotlibをインポートする

Pythonでの作業を開始する前に、matplotlibモジュールがインストールされていることを再確認しましょう。 コマンドラインで、次のコマンドを実行してmatplotlibを確認します。

  1. python -c "import matplotlib"

matplotlibがインストールされている場合、このコマンドはエラーなしで完了し、準備が整います。 そうでない場合は、エラーメッセージが表示されます。

  1. Output
    Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'matplolib'

エラーメッセージが表示された場合は、pipを使用してライブラリをダウンロードしてください。

  1. pip install matplotlib

matplotlibがインストールされたので、Pythonでimportできます。 まず、このチュートリアルで使用するスクリプトscatter.pyを作成しましょう。 次に、スクリプトでmatplotlibをインポートしましょう。 プロットモジュール(pyplot)のみを使用するので、インポートするときにそれを指定しましょう。

scatter.py
import matplotlib.pyplot as plt

matplotlibの末尾に.pyplotを追加して、インポートするモジュールを指定します。 スクリプトでモジュールを参照しやすくするために、pltと省略します。 これで、データの作成とプロットに進むことができます。

ステップ2—プロットするデータポイントを作成する

Pythonスクリプトで、使用するデータを作成しましょう。 2Dで作業しているため、データポイントごとにX座標とY座標が必要になります。

matplotlibがどのように機能するかを最もよく理解するために、データを実際のシナリオに関連付けます。 私たちが喫茶店のオーナーであり、年間の平均的な天気とアイスコーヒーの総購入数との関係に関心があるとしましょう。 X 変数は、1か月に販売されたアイスコーヒーの総数になり、Y変数は、各月の華氏の平均気温になります。

Pythonスクリプトでは、X(販売されたアイスコーヒーの合計)とY(平均気温)の2つのリスト変数を作成します。 それぞれのリストの各項目は、各月(1月から12月)のデータを表します。 たとえば、1月の平均気温は華氏32度で、コーヒーショップは590個のアイスコーヒーを販売していました。

scatter.py
import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

データが得られたので、プロットを開始できます。

ステップ3—データのプロット

散布図は2つの変数間の関係を決定するのに最適なので、この例ではこのグラフタイプを使用します。 matplotlibを使用して散布図を作成するには、scatter()関数を使用します。 この関数には、X座標値とY座標値を表す2つの引数が必要です。

scatter.py
import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)
plt.show()

プロットを作成するたびに、plt.show()を使用してプロットを表示することも指定する必要があります。

先に進む前に、スクリプトが機能していることを確認しましょう。 スクリプトを保存し、コマンドラインから実行します。

  1. python scatter.py

すべてがうまくいけば、次のようにプロットを表示するウィンドウが起動するはずです。

Alt Scatter plot

このウィンドウはデータを表示するのに最適です。 インタラクティブで、ラベルや座標を表示するためのホバー、ズームインまたはズームアウト、保存など、いくつかの機能が含まれています。

ステップ4—タイトルとラベルを追加する

スクリプトが正しく機能していることがわかったので、プロットに情報を追加し始めることができます。 データが何を表しているかを明確にするために、各軸のタイトルとラベルを含めましょう。

タイトルを追加することから始めます。 スクリプトのplt.show()行の前にタイトルを追加します。

scatter.py
import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)

plt.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()

次に、plt.title行のすぐ下に軸のラベルを追加します。

scatter.py
...
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')
...

スクリプトを保存して再度実行すると、より有益な更新されたプロットが得られるはずです。 更新されたプロットは次のようになります。

Alt Scatter plot with a title and X/Y labels.

ステップ5—プロットのカスタマイズ

使用するすべてのデータセットは一意であり、情報の表示方法をカスタマイズできることが重要です。 視覚化も芸術であることを忘れないでください。創造性を発揮してください。 matplotlibには、さまざまな色、ポイントシンボル、サイズ設定など、多くのカスタマイズ機能が含まれています。 ニーズに応じて、軸にさまざまな範囲を使用して、さまざまなスケールで遊んでみたい場合があります。 次のように、軸に新しい範囲を指定することで、デフォルトのパラメータを変更できます。

scatter.py
import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)

plt.xlim(0,1000)
plt.ylim(0,100)

plt.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()
...

元のプロットのポイントは少し小さく見え、青は希望する色ではない可能性があります。 おそらく、ポイントに円ではなく三角形が必要です。 ポイントの実際の色/サイズ/形状を変更する場合は、最初のplt.scatter()呼び出しでこれらの変更を行う必要があります。 次のパラメータを変更します。

  • s:ポイントのサイズ、デフォルト= 20
  • c:色、シーケンス、または色のシーケンス、デフォルト=’b’
  • marker:ポイントシンボル、デフォルト=’o’

可能なマーカーには、ひし形、六角形、星など、さまざまな形が含まれます。 色の選択肢には、青、緑、赤、マゼンタが含まれますが、これらに限定されません。 色のHTML16進文字列を提供することも可能です。 可能なマーカーおよびの包括的なリストについては、matplotlibのドキュメントを参照してください。

プロットを読みやすくするために、ポイントのサイズを3倍にし(s=60)、色を赤に変更し(c='r')、シンボルを三角形に変更します( [ X160X])。 plt.scatter()関数を変更します。

plt.scatter(X, Y, s=60, c='red', marker='^')

更新されたスクリプトを実行する前に、コードが正しいことを再確認できます。 カスタムプロットの更新されたスクリプトは、次のようになります。

scatter.py
import matplotlib.pyplot as plt


X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

#scatter plot
plt.scatter(X, Y, s=60, c='red', marker='^')

#change axes ranges
plt.xlim(0,1000)
plt.ylim(0,100)

#add title
plt.title('Relationship Between Temperature and Iced Coffee Sales')

#add x and y labels
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')

#show plot
plt.show()

手順6に進む前に、スクリプトを保存することを忘れないでください。

ステップ6—プロットを保存する

コードが完成したので、それを実行して、新しいカスタマイズされたプロットを確認しましょう。

  1. python scatter.py

ウィンドウが開き、プロットが表示されます。

Alt Final scatter plot with title and X/Y labels and customized with larger, red, triangle points.

次に、下部のツールバーにあるディスクアイコンである保存ボタンをクリックして、プロットを保存します。 画像はインタラクティブなグラフではなくPNGとして保存されることに注意してください。 これで、独自にカスタマイズした散布図ができました。おめでとうございます。

結論

このチュートリアルでは、Pythonでmatplotlibを使用してデータをプロットする方法を学びました。 これで、データを視覚化し、プロットをカスタマイズできます。

matplotlibの練習を続けるには、「 Python3でmatplotlibを使用して単語の頻度をグラフ化する方法」に関するガイドに従ってください。