週末はいつも晴れ

社会人5年目の日記です。プログラミングとか旅行とかラーメン。

matplotlibカラープロット

gnuplotは止めました。
Pythonをメインで使ってるのにmatplotlibを使わないのが
そもそも不自然だったんですけどね。


仕事で3次元のデータ(x, y, zの組)をプロットする機会が多いので、
得たポイントをまとめておきます。

環境はAnacondaです。
外部にネットワークが接続してない環境なので、一発でインストールできるのは助かります。
DOSLINUX両方で使ってますが、今のところ大きな差異は感じません。

自分に必要なことしか調べてないので
網羅的な内容にはなりませんのであしからず。

matplotlibのカラープロット

matplotlibで3次元のデータをカラープロット(コンター図?)にする方法は
おそらく2つあります。

plt.pcolor

※2017.6.18注
plt.pcolormeshまたはpcolorfastまたはplt.imshowでも同様のプロットが可能です。
それぞれ返すオブジェクトが異なるようですが、出来上がるイメージはすべて同じだと思います。
pcolorfastが最も描画速度が速いようです。
pylab_examples example code: pcolor_demo.py — Matplotlib 2.0.2 documentation
f:id:ikarino99:20160706201755p:plain

plt.contour(+plt.contourf)

下の例にもありますが、plt.contourfが塗りつぶし、plt.contourが等高線になります。
pylab_examples example code: contour_demo.py — Matplotlib 2.0.2 documentation
f:id:ikarino99:20160706201801p:plain

#!/usr/bin/env python3
import matplotlib.pyplot as plt
import numpy as np

xs = np.arange(-5, 5, 0.1)
z = np.array([x**2 + y**2 for x in xs for y in xs]).reshape((len(xs), len(xs)))
plt.contourf(xs, xs, z)
# plt.pcolor(xs, xs, z)
plt.colorbar()
plt.show()
# plt.savefig("contouf.png")

plt.pcolorは実直にz軸データを色に変換してプロットする方法。
plt.contour(f)はz軸の値の範囲毎に色を割り当ててプロットする方法。

3次元プロットを利用する場面の多くは
視覚的なイメージを相手に植え付けることが目的で、
具体的な値を示す場面で使うことは無いと思います。

そのため、私は細かい値を気にしないplt.contour(f)をよく使います。
データ数が多いとplt.pcolorはコストがかかることも理由の一つです。


それでは以下でポイントをまとめていきます。

x軸とy軸のスケールを一致させる

横縦軸共に長さのことが多いです。
軸の単位が縦横で違っても、アスペクト比で印象が変わってきますよね。

plt.axes().set_aspect('equal')

アスペクト比を変えるとsavefigのときに白いとこが増えちゃいます。
その解決策

plt.savefig("contouf.png", bbox_inches='tight')

表示するz値の目盛り値を変える

plt.contourfの場合かなり重要。
どこを境目にするかで、印象がぜんぜん違う。
(x, y, )zの次の引数です。

levels = [0, 2, 3, 10, 56]
plt.contourf(xs, xs, z, levels)

f:id:ikarino99:20160706203551p:plain
さっきと同じデータなのに、どうしても中心部分だけに目が行きますよね。
簡単に印象操作できちゃう。これがあるからカラープロットは信頼出来ない。

表示するx,y値の目盛り値を変える(表示の角度を変える)

x軸の目盛りが多すぎて表示できなかったので、90度に変更しました。

z軸の目盛り値をログスケールにする

from matplotlib.color import LogNorm
z = z + 1
plt.contourf(xs, xs, z, norm=LogNorm())

f:id:ikarino99:20160708021927p:plain

番外編:numpy2次元配列(行列)のあれこれ

カラー表示するZ軸の値はnumpy.ndarrayの2次元配列とすると思います。
私がよく使う関数のメモ。

import numpy as np
# 回転系
z = z.T # 転置したい場合
z = np.rot90(z) # 行列を90度回転したい場合
z = np.flipud(z) # 上下逆さま
z = np.fliplr(z) # 左右逆さま
# 数値計算系
z = np.log(z) # ログスケールしたい場合
z = z * 100 # 定数倍したい場合
z = M.dot(z) # 行列Mとの積を計算したい場合

即日発行のETCカード

高速代が4,000円近く安くなるということで、
旅行出発3日前に急遽、即日で作れるETCカードを探しました。

車を持つ予定は無いし、頻繁に高速道路を使うわけでもないので、
楽に手に入るものをチョイス。


結果、行き着いたのはイオンのETCカード

イオン銀行がある店舗なら、即日で作ることができるようです。
夜遅くまで営業しているところもポイント。


問題なのが、

  • イオンのクレジットカードを作る必要がある
  • 引き落とし先がイオン銀行になること

クレカも銀行口座も、増えると管理が面倒です。
イオンは近くにないので使わないし...

福岡〜大分旅行

ラーメン、魚介類、温泉旅行です。

昼に着く飛行機で福岡空港

一日目は久留米へ。

大砲ラーメン

f:id:ikarino99:20150731211114j:plain
一番美味しかった。

精養軒

f:id:ikarino99:20150731211119j:plain
あまり美味しくなかった?

二軒連続でかなり腹がキツくなったので、観光へ。

吉野ヶ里遺跡

f:id:ikarino99:20150731211124j:plain
暑かったorz

卑弥呼の湯

yutokuonsen.com
ホームページは今風だけど、内装はちょっと古い感じ。

夕ごはん(博多駅付近の居酒屋)

f:id:ikarino99:20150731211132j:plain
呼子のイカ
めっちゃうまい
イカなのにうまい

二日目 大分へ

台風が来ていたので、予定していた佐賀を取りやめ、大分へ。
高速代が意外と高くついて、片道4000円くらい

今回は別府へ

昼は別府の回転寿司へ。

口コミ多い割に普通だったtabelog.com

地獄めぐりは海地獄だけ(¥400)

f:id:ikarino99:20150731211135j:plain

その後ひょうたん温泉へ

www.hyotan-onsen.com
ミストサウナが気持ちよかった

夕ごはん(博多駅付近の居酒屋)

f:id:ikarino99:20150731211139j:plain
ごま鯖
めっちゃうまかった。
辛子明太子もおかしくなるくらい美味しかった。

せっかく大分に行ったのに、ここで二階堂焼酎。
相方は赤兎馬

その後、ラーメン屋二軒!
店の名前は忘れた!
f:id:ikarino99:20150731211143j:plain
f:id:ikarino99:20150731211147j:plain

三日目は天神へ

元祖長浜屋

朝からやってます
f:id:ikarino99:20150731211209j:plain
プレーンな博多ラーメン

忘れた

f:id:ikarino99:20150731211214j:plain

shin shin

f:id:ikarino99:20150731211219j:plain


旅費は全部合わせて¥55,000くらい。
大満足です。

『低炭素社会』

低炭素社会 (幻冬舎新書)

低炭素社会 (幻冬舎新書)

会社の研修で、環境に関するレポートを書く必要があったので読みました。

はっきり言って内容がめっちゃ古かった。
2010年初版だから仕方ないけど、あまりにも陳腐化しすぎていた。
おそらく震災前ですから、意識も違うんでしょうね。

それだけじゃなくて、低炭素と銘打っているのにも関わらず、使用エネルギー量を減らすことばかり議論している。

もちろんエネルギーの消費量を減らすことは、低炭素社会を目指す上で重要だと思うけど、エネルギーの源を変えるほうが二酸化炭素の量を減らすことにつながるんじゃないかと思う。

例えば、

みたいな内容も期待してた。



ということで、この本はレポートに使いませんでした。
高校とか大学とか新入社員の研修で良くある環境のレポートには以下のような資料がお勧めです。www.enecho.meti.go.jp
www.enecho.meti.go.jp

福岡にラーメン食べに行きます

大学3回生の時に行った2泊3日の博多ラーメン旅行が忘れられず、決行することにしました。
3日間なのに12食くらい食べました(内1食だけモツ鍋)。

今回も2泊3日です。
なぜかものすごく安く予約できたので、貼っておきます。
スーパーサマーセール2015 - H.I.S. 国内旅行
H.I.S.のSuper Summer Saleです。

条件は、

  • お盆の繁忙期2週間くらい前
  • 二人一部屋(ベッド2つ)
  • 羽田空港===福岡空港
  • 博多付近のホテル(朝食付き)
  • レンタカー付き

これでなんと、¥35,000でした。
食費の中心はラーメンになるので、ガソリン代などをプラスしても5万くらいですね。
吹けば飛ぶような新入社員ボーナスがかなり飛びますが、楽しみです。


前回は電車、徒歩での移動だったので、お酒は飲めましたが、少し足を伸ばすのが億劫でした。
今回はレンタカーで久留米ラーメンを中心に食べに行きます。

おすすめのラーメン屋があったら教えていただきたいなぁ〜

『ウィスキーの科学』

ウィスキーが大好きです。

好きなんだけど、知っていることは銘柄による味と香りの違いとか、分類とか醸造所とか、ファッションウィスキー好きみたいな感じです。

これから何十年も付き合っていくことになるだろうし、
友人と醸造所の見学に行こうという話も出ているので、
製法についての知識を深めておこうと思い、こちらの本を読み始めました。


中身は名前通りで、科学的な内容がほとんど。
熟成の話になると、アルコール、芳香族元素、不揮発性成分などなど、
もう記憶の彼方にある高校時代の化学の知識を呼び覚ます必要がありました。


そんな本とわり切って読めば、非常にわかりやすい文章でした。
もったいぶった書き方や、ウィスキーを形容するときに使われる表現も大好きです。

http://sd.keepcalm-o-matic.co.uk/i/keep-calm-and-drink-whisky-1.png