Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

ずっと避けてきた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()

ぐぬぬ。

ひとまず

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

道は長そうです。

yuki_saito_en
のんびりエンジニア 日の目の当たらない、ニッチな技術が好き。
https://note.com/yukinkoyuki
dmmcom
総合エンタテイメントサイト「DMM.com」を運営。会員数は2,900万人を突破。動画配信、FX、英会話、ゲーム、太陽光発電、3Dプリンタなど40以上のサービスを展開。沖縄での水族館事業参入、ベルギーでのサッカークラブ経営など、様々な事業を手掛ける。また2018年より若手起業家の支援を強化、「DMM VENTURES」による出資や、M&Aなどを積極的に展開している。
https://dmm-corp.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away