海外渡航の手続きや現地生活情報などなど。今はフィンランド在住。中国語サイトは嫁さんの日記。今回の投稿ではpythonのmatplotlibを使ったプロットの描画の仕方をまとめておきたいと思う。プロットを作るためのソフトウェアさて数値データを人に説明しようかと思うと、やはり何らかのプロット(絵)に変換して見せるのがわかりやすいかと思う。数値データからプロットを作るソフトウエアはエクセルをはじめとして各種の優れた有料ソフトウエアが存在している。普通はエクセルか所属機関が購入しているソフトを使うことが多いのだろうけど、見た目にこだわりがあるなら自分の予算次第で買うのもありだろう。そんなに高いわけでもない。無料ソフトで作りたいと思ったら、gnuplotなどはかなり高性能な上に見た目も良いプロットを作ることができる。プログラミングと組み合わせて使っている人が多いソフトでもある。使い勝手に対する意見は分かれるところかもしれないが。pythonを使ったプロットの描画(matplotlib)さて我らがpythonはどうなんだというと、matplotlibというパッケージが用意されている。pythonを使い慣れていればそれなりに使い勝手は良いし、絵も努力次第ではかなり綺麗な絵を出力することができる。pythonは使っている人が多いので、色合いやプロット形式などのフォーマットを拾ってくれば簡単にクオリティーの高い絵を出力することができる。自分の好みを追求していくことも可能だ。いえpythonでプロット出力のスクリプトを書くのには、それなりに時間もかかる。一つのプロットを作るのにスクリプトを書くのは、あまり賢いことではないだろう(私は自分に練習だからと言い聞かせて書いてしまうこともあるが)。一方で似たような形式のデータから多数のプロットを作製したい時などは、スクリプトを書くことで時間の短縮ができることもある。何かのプログラムを書いた時に、ついでにプロットを一緒に出力してしまうのも良い方法だ。私は良く2Dイメージを強度vsピクセルのプロットに変換するのだが、テキストデータを作ると同時にプロットも出力してしまうようにスクリプトを書いている。matoplotlibを使ったスクリプトの例matplotlibはanacondaのpythonを使っていれば標準インストールされていると思う。ない場合はpipでインストール。matplotlibスクリプトの最初にmatplotlibのpyplotをインポートしておく。基本的にはこれだけで良いと思うけど、必要に応じて他の関数もインポートする。私はグレイスケールの画像を使うのにmatplotlib.cmなどもインポートしている。plt私の場合他のパッケージとの競合でのバグ避けようにおまじない。matplotlib.use('TkAgg')さてプロットの基本設定は紛らわしくないように、メイン関数の中にでも書いておくと良いかと思う。上からフォント・サイズ・各軸の線の太さ・x軸のメモリの太さ・x軸のラベルサイズ・y軸のメモリの太さ・y軸のラベルサイズ。最後のは絵を出力する際のサイズ比。調べてないけどrcParamsはもっと色々設定できるんじゃないだろうか。20plt.rcParams['axes.linewidth']=3.5plt.rcParams['xtick.major.width']=2.5plt.rcParams['xtick.labelsize']=20plt.rcParams['ytick.major.width']=2.5plt.rcParams['ytick.labelsize']=20plt.rcParams['figure.figsize']=(8,6)さてデータは適当に読み込む。np.loadtxt(argvs[1])そうしたらプロットを作る関数なりクラスなりを書く。この場合yが縦軸のデータでx軸が横軸になる。–は線グラフになるが、oなどを使うと散布図で出力できる。label='test')といった感じ。細かいプロットの調整は関数の中でしても良いかも。一つのプログラムの中で複数のプロットを出力するのに、それぞれ設定を変えたい時なんかに。そんな時は一つプロットが終わって絵を吐き出したらplt.clf()でリセットしておく。話を戻してX軸y軸のラベルの調整。top='off',pad=8)縦横軸の設定。フォントは初期設定から変えたい場合はここでも変えられる。特殊記号も下記のようにtex形式やらコードやらで記入可能。='Arial')レジェンドを図中に入れるなら。locで場所の指定ができる。bestみたいなお任せで適当に入れてもらう機能もあるが、必ずしもよくない。right')図の保存。サイズ指定で絵を出力するとはみ出ることがあるので、bbox_inches=’tight’を指定しとくときっちり収まる。bbox_inches='tight')あとはx軸とy軸の範囲指定はよく使う。100)plt.ylim(0,10000)などなど。最後に保存した絵に加えて、pythonにもプロット出力させておきたかったら。plt.show()基本的な使い方はこんな感じでしょうか。あとはプロットする色の組み合わせなど外部パッケージを使うと少し楽できる。私が使ったことがあるのはbrewer2mpl。色のグラデーションを作ってあげる。=bmap2.mpl_colorsそれからカラーをcolor[]で指定して出力してあげる。label='WATER')てな具合に。今思いついたのはこのぐらい。何か有用なことでも思い出したら追記するが、あまり思いつきそうなことももないかなとも思っている。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。Analyticsを使用しております。使用して、ユーザーが当ウェブサイトや他ウェブサイトに過去にアクセスした際の情報に基づいて広告の配信を行います。ユーザーは、広告設定にてパーソナライズ広告を無効にできます。Analyticsの使用にあたっては、当ウェブサイトのアクセス解析のためCookieを利用しております。データ収集・処理の仕組みについてはwww.google.com/intl/ja/policies/privacy/partners/などをご覧ください。