The ブログ !

主にpythonやnumpyやmatplotlibなどについて書き留めていきます

初めてのブログ

はじめに

初めてブログとやらを開設してみた。

最近PythonとかJupyter Notebookとかを使い始めたので気になって調べたことをここに書き留めていこうと思う。

matplotlibでグラフ作成にあたって

必要なモジュールをimportする。

import numpy as np

import matplotlib.pyplot as plt

Matplotlib でグラフ中にテキストを埋め込む

plt.text(x, y, 'hoge', fontsize=None, ha='right', va='center')

ex.

plt.text(89, 50, "laser=50um,10mJ,1ps", fontsize=None, ha='right')

2軸のグラフの作成方法

fig = plt.figure()

ax1 = fig.add_subplot(1, 1, 1)

ax2 = ax1.twinx()

 

ax1.plot(x, y, label='hoge')

ax1.plot(x, y2, label='hoge2')

ax2.plot(x, y3, 'navy', label='hoge3')  など

 

ax1.legend(loc='best')

ax2.legend(.535, .74)

凡例は別々に追加するしかない。
何も考えずに各々書くと重なるので片方を座標指定する。
一つの枠に収めるにはもう少し複雑な手法が必要。
あるいは枠を取り払うという手もある。

ax2.legend(.8, .9, frameon=False)

参考URL (英語)

 

また第2軸のラベルはデフォルトだと左に90度回転した状態となっている。
これを右90度にするためにはrotation=角度を使う。

 

ax2.set_ylabel('Y Label', color='k', rotation=270, labelpad=15)

 

labelpadを指定しないと目盛りとかぶることがある。

役立つサイト

qiita.com

 

グラフ中に矢印を入れるには

annotateを使う。

ax1.annotate('ほげ', xy=(9, 45), xycoords='data', xytext=(20, 45), textcoords='data', arrowprops=dict(facecolor='b'))

またはplt.annotate()

xycoords, textcoords を'data'にすることでデータのxとyの値で指定できる。

'data'以外にも'axes fraction'とすれば左下を(0,0)、右上を(1,1)として指定できる。