前書き

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

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

視覚化は、特にデータに精通していない人に、概念を普遍的な方法ですばやく簡単に伝える方法です。 データを扱うときは常に、視覚化は分析の必要な部分です。

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

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

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

前提条件

このチュートリアルでは、Python 3をインストールし、コンピューターにローカルプログラミング環境をセットアップする必要があります。 そうでない場合は、https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming-environment-forに従って設定することができます-python-3 [オペレーティングシステムに適したインストールおよびセットアップガイド]。

ステップ1-matplotlibのインポート

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

python -c "import matplotlib"

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

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

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

pip install matplotlib

matplotlibがインストールされたので、Pythonでhttps://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3 [インポート]できます。 まず、このチュートリアルで使用するスクリプト「++」を作成しましょう。 次に、スクリプトで、matplotlibをインポートします。 プロットモジュール(pyplot)のみを使用するため、インポートするときに指定します。

scatter.py

import matplotlib.pyplot as plt

インポートするモジュールを指定するには、 `+ matplotlib `の最後に ` .pyplot `を追加します。 スクリプトでモジュールを参照しやすくするために、「 plt +」と省略します。 これで、データの作成とプロットに移ることができます。

手順2-プロットするデータポイントの作成

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

matplotlibがどのように機能するかを最もよく理解するために、データを実際のシナリオに関連付けます。 コーヒーショップの所有者であるふりをしてみましょう。年間を通しての平均的な天気とアイスコーヒーの合計購入数との関係に興味があります。 X https://www.digitalocean.com/community/tutorials/how-to-use-variables-in-python-3 [変数]は、1か月あたりに販売されるアイスコーヒーの総数であり、Y変数は各月の華氏の平均気温。

Pythonスクリプトでは、2つのリスト変数を作成します。+ X + `(販売されたアイスコーヒーの合計)と + Y + `(平均温度)です。 それぞれのhttps://www.digitalocean.com/community/tutorials/understanding-lists-in-python-3[lists]の各アイテムは、各月(1月から12月)のデータを表します。 たとえば、1月の平均気温は華氏32度で、コーヒーショップでは590個のアイスコーヒーを販売していました。

scatter.py

import matplotlib.pyplot as plt

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

ステップ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.show()+`を使用してプロットを表示することも指定する必要があります。

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

python scatter.py

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

image:http://assets.digitalocean.com/articles/eng_python/PlotDataMatplotlib/matplotlib1.png [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.show()

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

scatter.py

...


...

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

image:http://assets.digitalocean.com/articles/eng_python/PlotDataMatplotlib/matplotlib2.png [タイトルとX / Yラベルのある散布図プロット]

ステップ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.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()
...

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

  • + s +:ポイントのサイズ、デフォルト= 20

  • + c +:色、シーケンス、または色のシーケンス、デフォルト= ‘b’

  • + marker +:ポイントシンボル、デフォルト= ‘o’

可能なマーカーには、ダイヤモンド、六角形、星など、さまざまな形状が含まれます。 色の選択には、青、緑、赤、マゼンタが含まれますが、これらに限定されません。 また、色にHTML 16進文字列を提供することもできます。 可能なhttp://matplotlib.org/api/markers_api.html[markers]およびhttp://matplotlib.org/api/colors_api.html[colors]の包括的なリストについては、matplotlibのドキュメントを参照してください。

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

plt.scatter(X, Y, )

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

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-プロットの保存

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

python scatter.py

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

image:http://assets.digitalocean.com/articles/eng_python/PlotDataMatplotlib/matplotlib3.png [タイトルとX / Yラベルが付いた最終的な散布図で、大きな赤い三角形の点でカスタマイズされています。]

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

結論

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

matplotlibの練習を続けるには、「https://www.digitalocean.com/community/tutorials/how-to-graph-word-frequency-using-matplotlib-with-python-3[How To Graph Python 3でmatplotlibを使用した単語の頻度]。