0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Python氏によるデータのビジュアライズ

Last updated at Posted at 2019-06-01

#ずっと避けてきたmatplotlibを勉強する
何故か、面倒だという理由から避けてきましたが、オライリーの本を買ったので、これを機に勉強する。

今回買った本はこちら、「Python for Data Analysis 2nd Edition」
この本の第9章を眺めていこうと思います。

本書では、十分なスペースがないとのことですが、使いこなしていくための下地を作来るのが目的とのこと。

データ分析という意味合いが強いですが、普段の業務にも多岐に渡って活躍してくれると信じています。

#matplotlib
Pythonには組み込みのビジュアライゼーションライブラリがあるらしい(使ったことないです)今回は、本に沿って、matplotlibを使っていきます。

環境は CentOS7 Jupyter-notebookにて

1. 最も単純なパターン

描写される部分が plot とよばれるらしいです。


import numpy as np
import pandas as ps
import matplotlib.pyplot as plt
%matplotlib inline

data = np.arange(10)
data

plt.plot(data)

image.png

うーん。なんか動いたけどよくわからないなぁ。
一次元のデータなのに2次元で表示された。

y=x の1次関数ぽい

2. sub plot

plot は Figureオブジェクトの中に含まれているとのこと。そのため

ax1 = fig.add_subplot(2, 2, 1)
とすることでplotに図を追加することができる。
2*2の場所を作成して、その1つめということとのこと。

image.png

fig = plt.figure()
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
ax4 = fig.add_subplot(2, 2, 4)
ax3.plot(np.random.randn(50).cumsum(), 'k--')
ax1.hist(np.random.randn(100), bins=20, color='k', alpha=0.3, 'ko--')

cusumはcumulative sumなので累積。
最後のk--はスタイルオプションと言って、描画のオプションを決める事ができる。

k--は黒色の破線。 --の部分が破線*-というように線のスタイルを決めることができる。
細かいオプションは、公式サイトを見てねという感じだった。

ko--は黒で、データのポイントを●で表示して、破線。

ヒストグラムのbinsはどれだけ、標本を分割するかという値。

ラベリング

今までだと、ラベルや、メモリは自動生成だった。
ある程度データがみえてきたらラベリングしたほうが見やすい。

image.png

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(np.random.randn(1000).cumsum(),label='one',)
ax.set_xticks([0, 250, 500, 750, 1000])
ax.set_xticklabels(['one', 'two', 'three', 'four', 'five'],rotation=30, fontsize='small')
ax.set_xlabel('Stages')
ax.legend(loc='best')

ticksってこと目盛りなので、そのメモリをx軸に対して設定して、そのラベルが1から5というように設定できる。
rotationはラベルをどれだけ傾けるかということとのこと。

legend 伝説的な凡例を入れるにはこれを使う。

昔Excelでやってたなー。。こんなこと。

#と思ったら

pandas氏にはもうそんな機能が備わっていた。

image.png

df = pd.DataFrame(np.random.randn(10, 4).cumsum(0),
columns=['A', 'B', 'C', 'D'],
index=np.arange(0, 100, 10))

df.plot()

ぐぬぬ。

#ひとまず
本は最後に、ネットでググって良いリソースをもとにいっぱい勉強してね!って書いてありました。

道は長そうです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?