Pythonメモ

全くのところ、自分用のメモです。

始めの宣言

%matplotlib widget
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

区切りの良いカラー番号

Pythonとは関係ありませんが、0から255まで等間隔に区切りたいだけです。17の倍数です。255を素因数分解すると、

255 = 17 * 5 * 3

となる訳で。

# 0から255まで4段階に分ける
0, 85, 170, 255,
# 0から255まで6段階に分ける
0, 51, 102, 153, 204, 255,
# 0から255まで16段階に分ける
0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 255

matplotlibのデフォルトカラーコード

'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'

グラフの描画

# seaborn-paper, seaborn-notebook, seaborn-talk, seaborn-posterの順で文字が大きくなる
with plt.style.context('seaborn-poster'):
    fig, axes = plt.subplots(2, 2, figsize=(8,6))
    ax = np.rabel(axes)
    ....
    plt.tight_layout()
    plt.show()

インタラクティブなmatplotlibグラフ表示時のショートカット

Command Shortcut(s)
Home/Reset 'h', 'r', 'home'
Back 'left', 'c', 'backspace'
Forward 'right', 'v'
Pan/Zoom 'p'
Zoom-to-rect 'o'
Save 's', 'ctrl+s'
Toggle fullscreen 'f', 'ctrl+f'
Toggle major grids 'g'
Toggle minor grids 'G'
Toggle x axis scale (log/linear) 'k', 'L'
Toggle y axis scale (log/linear) 'l'
Close Figure 'ctrl+w', 'cmd+w', 'q'
Constrain pan/zoom to x axis hold x when panning/zooming with mouse
Constrain pan/zoom to y axis hold y when panning/zooming with mouse
Preserve aspect ratio hold CONTROL when panning/zooming with mouse

好みのグラフにする

# 外枠を消す
plt.rcParams['axes.spines.left'] = False
plt.rcParams['axes.spines.right'] = False
plt.rcParams['axes.spines.bottom'] = False
plt.rcParams['axes.spines.top'] = False
# 左の目盛りを消す
plt.rcParams['ytick.left'] = False
# 水平グリッドを表示する
plt.rcParams['axes.grid.axis'] = 'y'
plt.rcParams['axes.grid'] = True
plt.rcParams['grid.linestyle'] = 'dotted'
# カラーマップを再定義する
colors = plt.cm.get_cmap('tab20c')(np.arange(0, 1, 0.05))
plt.rcParams['axes.prop_cycle'] = plt.cycler(color=colors)