The ブログ !

主にpythonやnumpyやmatplotlib、その他研究などについて書き留めていきます

ターミナルのコマンド履歴

macのターミナルを使ってると矢印の上下ボタンで過去のコマンドを召喚することができる. これが便利でよく使うのだが、新しく買ったmacがそれを受け付けない. exitでセッションを閉じて新しいのをcommand+Tで開くとコマンド履歴が消去されてしまっている. 最近のmacOSはそういう仕様なのだろうか.

解決法は以下のリンク先で見つけた.

apple.stackexchange.com

 

.bash_profileに

SHELL_SESSION_HISTORY=0

を追記すると矢印が機能するようになった.

中身はよくわかってないけど、とりあえずめでたしめでたし.

速い軸と遅い軸

光速はc=3*10^8[m/s]なわけだが、屈折率nの媒質中ではv=c/n.

複屈折を持つ媒質ではその名の通り屈折率が2つあり、n_oとn_eがある.

もしn_eの方が大きければ、そっちのほうが遅くなるので遅い軸"Slow Axis"となりn_oの方が速い軸"Fast Axis"となる.

よって遅軸の成分は速軸成分に対して遅れるので偏光が変更される.....

これをリタデーション"retardation"という.

 

また波長banはゼロオーダーと呼ばれる種類のものがある.

例えばしぶんのらむだだったら実際に波長の1/4だけリタデーションされる.

コンパウンドゼロオーダーと区別してこれをトゥルーゼロオーダーという.

マルチオーダーは例えば5/4ずれる.実質1/4というわけ.

コンパウンドはfastとslowとを交互に並べて、打ち消し合わせることでゼロオーダーを実現する.レッツリタデーション.

科学

科学というワードについて、自分の所属のせいかもしれないが科学=自然科学と頭の中で勝手に変換されてしまってたような気がする.

教えてgooに良い記事があったのでここにコピペします.

Q:

【科学】科学は自然科学・人文科学・社会科学の3つに分類される。医学も物理学も化学は自然科学の一分野だ。

人文科学・社会科学って何ですか?

工学も自然科学の1つ?

どういう細分化されているのか教えてください。

A:

自然科学は、自然を観察する事により得られる科学分野で、通常は物理学・化学・生物学・地学(地球科学)・天文学です。工学・医学は実学ですね。
自然科学で無いのは、数学・哲学などの抽象的学問ですね。
人文科学は、広義には、人間が為した文化等を研究する分野なので、社会科学を含みますが、社会のみを研究分野とする場合は、社会科学は人文科学と分離されます。
その場合の人文科学は、哲学(倫理学・論理学・数理哲学)・歴史学(考古学)・文学・芸術学(美学)・宗教学・文化人類学民族学)・教育学・心理学などです。
社会科学は、政治学(政策科学)・経済学(経営学)・法学・社会学などです。
上記を見ると、数学が入る場所がありませんが、便宜上は形式科学ですが、大学などでは自然科学分野との関わりが強いので、自然科学の分野に加えられています。

TeXあれこれ

TeXを久しぶりに使おうと思った.論文論文.

美文書第5版を持っていたが、色々と新しい内容もありそうなので第7版を買ってしまい、TeXShopmacにインストール.

勢いでSierraからHigh Sierraにした.

 

んでいざ書き始めるとエラー!

色々試してみると英文ならいけるのに日本語だとエラることをつきとめ.

ぐぐりぐぐりしてるとちゃんと解決策出てきた.

[改訂第7版]LaTeX2e 美文書作成入門

しかもめぐりめぐってサポートページw

書いてある通りパッチをあてたら日本語打てた!素晴らしい!ありがとう!

 

フォントを色々調べてこれを参考にしつつ

cyanatlas.hatenablog.com

 

いきついた結果は

\usepackage[T1]{fontenc}

\usepackage{amsmath}

\usepackage{newpxtext, newpxmath}

\usepackage{bm}

 

よしがしがし書くぜ

初めてのブログ

はじめに

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

最近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)として指定できる。