matplotlibメモ

matplotlibメモ

グラフで日本語を使うには

ふつうに日本語を使うとエラーになるので、以下のように書く。

グラフのデフォルトのスタイルを変更する

とすればいい感じのスタイルになる。

とすると利用可能なスタイルの一覧を取得できる。

add_subplotの引数を統一しないとどうなるのか

plt.figureは全体の描画領域を生成する。その領域のどの部分に描くかを指定するのがadd_subplot。

以下のようにするとふつうに描画される。生成した描画領域全体をもれなく使うので無駄がない。

素朴な疑問としてadd_subplotの第一引数と第二引数を、1回目と2回目で変えたらどうなるのか。

この場合、2個目のグラフは全体を100分割して左から2番目の細長い領域に描画される。1個目と2個目のグラフは重なっている。

ax1とax2はお互いの存在を知らないので、分割方法のつじつまが合わないと重なることがある。

うっかりつじつまが合わなくなる可能性をなくすには、plt.subplotsを使うといいと思う。

複数のグラフを描く際

複数のグラフを描く際、axes[i, j].imshow()みたいな感じで添え字を使って描くより、↓みたいにaxes.ravel()でまわしたほうがすっきり書ける。

ラベルごとにマークを変えて散布図を描く

にはmglearn.discrete_scatterを使う。

あとで知ったが、plt.scatterでも可能。

X_trainのどれかひとつの列(特徴)をとりあえずプロットしたいとき。

X_trainの要素数とおなじ個数の横軸データをlinspaceで生成してプロット。

横軸→縦軸をつくるときはnp.arangeでもいいが、縦軸→横軸をつくるときはnp.linspaceを使う。横軸と縦軸の要素数は等しくなければならない。

決定境界を描画する

np.mgridで格子状の点の配列を生成し、各点での確率(あるいは予測ラベル)を高さとしてplt.contourfで等高線を描画する。

注意点として、np.mgridは関数ではなくオブジェクトなので大括弧で引数を指定する。

np.mgridではなくnp.meshgridでも描ける。スライスが使えないのでやや冗長となるのでnp.mgridのほうがいいかな。

グラフの色使いがみにくい場合

黄色とかで点を示されるとみにくい。そんなときはcmap属性でカラーマップを指定する。こんな感じ↓

とはいえcmapを使うとdf[‘target’]の数値が小さい点は白く表示されてもっと見えにくくなったりする。。。もしdf[‘target’]の数値の種類が少ない場合は数値と色の対応を辞書で用意すればしのげる。

df[‘target’]の数値の種類が多い場合はどうすればいいんかな。いまのところわからん。

点が黄色や白で見にくい場合、edgecolors属性を指定して線に色をつけてやればいい。

edgecolors指定なし edgecolors指定あり

シェアする

  • このエントリーをはてなブックマークに追加

フォローする