LoginSignup
5
10

More than 3 years have passed since last update.

ヒストグラム・散布図をJupyter Notebook上で表示する

Posted at

Matplotlibを使ってJupyter Notebook上でヒストグラムや散布図を表示させる方法です。

この記事の内容は、以下の記事に従って準備したJupyter Notebookの環境で試しています。
Jupyter NotebookをDockerを使って簡単にインストールし起動(nbextensions、Scalaにも対応) - Qiita

この環境でブラウザで8888番ポートにアクセスして、Jupyter Notebookを使うことができます。右上のボタンのNew > Python3をたどると新しいノートを開けます。

また、この記事では適当なランダムで作成したCSVファイル
https://github.com/suzuki-navi/sample-data/blob/master/sample-data-1.csv
を使っています。

データ準備

各種importとデータを読み込みます。

%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("sample-data-1.csv", names=["id", "target", "data1", "data2", "data3"])

dfはDataFrameのオブジェクトになります。

image.png

CSVからの読み込みとDataFrameの扱いについては前回の記事参照。
DataFrameに対する基本操作を試す - Qiita

ヒストグラム

Matplotlib documentation
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.hist.html#matplotlib.pyplot.hist

plt.hist(df["data1"])

image.png

binsというオプションで横軸の分割する数を指定できます。

plt.hist(df["data1"], bins=30)

image.png

rangeで横軸の範囲を指定できます。

plt.hist(df["data1"], range=(-100, 100))

image.png

density=Trueを指定すると、縦軸の合計が1.0になるように正規化されます。

image.png

散布図

Matplotlib documentation
https://matplotlib.org/api/_as_gen/matplotlib.pyplot.scatter.html#matplotlib.pyplot.scatter

plt.scatter(df["data1"], df["data2"])

image.png

cに整数の列を指定すると、その値ごとに色分けしてくれるようです。

plt.scatter(df["data1"], df["data2"], c = df["target"])

image.png

点がたくさんある場合はalphaを指定するとよさそうです。0.0で透明、1.0が不透明で、その中間を指定すれば濃淡がわかります。

plt.scatter(df["data1"], df["data2"], c = df["target"], alpha=0.5)

image.png

xlim, ylimというメソッドで横軸の範囲を指定できるようです。

plt.xlim(-50, 50)
plt.ylim(-5, 5)

image.png

以上。

5
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
10