In [30]:
# データの可視化
import numpy as np
import scipy as sp
import pandas as pd

import matplotlib.pyplot as plt
import matplotlib as mpl
import seaborn as sns
sns.set()

%matplotlib inline
%precision 3
Out[30]:
'%.3f'
In [34]:
# 棒グラフ
x= [1, 2, 3]
y =[20, 40, 30]

# 大きさ
plt.figure(figsize = (5 , 3))

# 種類
plt.bar(x, y)

# 各データのティック
plt.xticks(x, ['A', 'B', 'C'])

# 全体のラベル
plt.xlabel('Class')
plt.ylabel('Score')

# グリッド
plt.grid(True)

# 表示
plt.show()
In [36]:
# 横棒グラフ : 順番注意
x = [1, 2, 3]
y = [20, 10, 30]

plt.figure(figsize = (5 , 3))

plt.barh(x, y, align ='center')

plt.yticks(x, ['A', 'B', 'C'])

plt.xlabel('Score')
plt.ylabel('Class')

plt.grid(True)
plt.show()
In [56]:
# 複数のグラフ
y1 = [5, 7, 9]
y2 = [6, 8, 8]

x = np.arange(len(y1))

plt.figure(figsize=(5,3))

# 各barの幅 , barのピッチ幅
width = 0.4 
pitch = 0.4

# 2つのグラフはそれぞれ指定する
plt.bar(x, y1, color ='red', width=width, label='Score A', align ='center')

# 2つ目のデータは重ならないようにずらす
plt.bar(x + pitch, y2, color ='blue', width=width, label='Score B', align ='center')

# 凡例
plt.legend(loc = 'best')

# ticksの位置は pitch/2 の補正をかけること
plt.xticks(x + pitch/2 , ['A', 'B', 'C'])
plt.grid(True)
plt.show()
In [84]:
# 積み上げ棒グラフ
y1 = np.arange(10) * 5 + 10
y2 = np.arange(10) * 10 + 10

x = np.arange(len(y1))

# 棒グラフでOK
plt.figure(figsize=(5,3))
plt.bar(x, y1, color='red', label='Score A')

# ここで y2には bottom=y1を 入れることによって積み上げられる
plt.bar(x, y2, bottom=y1, color='blue', label='Score B')

# 各ラベル
plt.xticks(x, ['A','B','C','D','E','F','G','H','I','J'])
               
# 凡例
plt.legend(loc = 'best')

plt.grid(True)
plt.show
Out[84]:
<function matplotlib.pyplot.show>
In [98]:
# 円グラフ
labels = ['A' , 'B', 'C']
sizes = [10, 20, 30]
colors = ['pink', 'lightblue', 'orange']
explode = (0, 0.1, 0)

# 大きさ
plt.figure(figsize=(5, 3))

plt.pie(sizes, explode=explode, labels=labels, colors=colors,
       autopct='%1.1f%%', shadow=True, startangle=90)

# TOPから見る
plt.axis('equal')
Out[98]:
(-1.191, 1.104, -1.153, 1.103)
In [109]:
# バブルチャート
N = 25

np.random.seed(0)
x = np.random.rand(N)
y = np.random.rand(N)

bubble_size = np.random.rand(N) * 1000

colors = np.random.rand(N)

#大きさ
plt.figure(figsize=(5,3))

#散布図を使う
plt.scatter(x, y, s=bubble_size , c=colors, alpha=0.8)
plt.grid(True)