2020年の終わりに1年を振り返って

世界中がコロナ禍に陥った2020年。

ご多分に漏れずコロナのことしか覚えてないし、ほとんど何もしていない1年だった。もちろんそうなってしまったのはしょうがないかなって気もするんだけど、こういう普段通りじゃない1年を上手に過ごせる人ってのはきっといい一生を送れる人なのだろうなって、なんかそんな気がする。

特に書くこともないんだけど、一応絞り出して2020年の私的5大ニュースを備忘のために書いておこう。

1 在宅ワーク(Work from home!!)

日本の人も世界中の人もしているように、ほぼ全ての仕事が在宅ワークになった。もともとコンピュータワークがほとんどの解析系だったこともあり、仕事としてはほとんど問題なかった。
ただ、私は注意欠陥系の気質なので集中力が職場よりも長持ちしないってことで、個人的にはオフィスワークでも職場に通う方が仕事は捗っていたかなって印象。

実験以外のほとんどの全てがオンラインで済ませられるってのはなかなかに面白い発見だった。オンラインセミナーはもちろん、gathertownとかいうのを使って、オンラインのポスターセッションをしたのは今年のハイライトの一つだったかと思う。

2 嫁Xの就活

嫁さんの話だけど、コロナ禍を精力的に乗り切った一人。オンラインも対人も上手にやりくりして、インタビューをいくつかこなした。結果二つのオファーの中から、望みの研究所に就職を決めた。研究活動再開、おめでとう!

3 息子のL君の成長

いつの間にやら中国語ぺらぺらになって、フィンランド語もほぼ理解している。私が無口なもんだから日本語はイマイチだけど、少しずつ成長中ではあるかな。

立体パズルが上手だったり、意外と絵心があったりして、顔は私に似てるんだけど、能力は嫁に似てるのかなあ、なんて思ったりする2020年だった。

3 任天堂スイッチ購入

引きこもり生活ってことで嫁とゲームを購入。あつ森、ディアブロ3、ダークソウルリマスタード、リングフィットアドベンチャー辺りでかなりの時間を楽しんだ。

息子のL君がすでにゲームにハマりつつあるーーバランスゲーム『のアートオブバランス』に中毒気味。4歳前くらいの子供でもかなり上手にできるので、3歳くらいの子供なら余裕でいけると思う。

4 新しいX線装置のトレーニング

2019年に結構力を入れた新しいX線装置の購入。

内部リンク: 科学装置購入の事前情報収集のための企業訪問

コロナのせいで延期に延期されたんだけど、ようやく大学にインストールされた。大きな装置なので購入企業から五人に装置トレーニングがパッケージに含まれていて、そのトレーニングを受けてきた。

詳細は省くけど、新しいX線装置はとてもいい。コマンドマクロこそちょっとオールドファッションなSPECで書かないといけないけど、シンクロトロンや中性子を使い慣れてば問題ない。サンプルをセットしたらデータ取得はほとんどオート。データ処理はほとんどデータを取る時に済ませることができるし、バックグラウンド処理、解析のソフトも優秀。

このくらいの装置が大学でphdやってた時とかにあったらよかったなあってすごく思うけど、当時では無い物ねだり。まあ時代の発展ってのはそういうものなんでしょうねえ。

 

……という感じで、大きな出来事の少ない落ち着いた2020年でした。2021年は人生の大きな決断をする年になりそうだけど、まあもうちょっと自分の人生を楽しめるような雰囲気になるといいかなって思っていたりします。

それではみなさま良いお年をお迎えください。

Wish happy New Year for all of you!

D

【python3・覚書】よく忘れるpythonのmatplotlibの書き方一覧

よく忘れるpython3のmatplotlibの書き方の自分用の覚書。随時更新。

x軸、y軸の表記やらメモリやら色々変える

数値じゃなくてサンプル名(文字)なんかでプロットする

なぜかたまに忘れる。そのまま文字列のarrayなりリストなりをX軸にすればいい。

X1 = np.array(['a1','b1','c2','a2','c3'])

対数軸でプロット(log-log plot)

plt.xscale("log")
plt.yscale("log")

対数軸がごちゃつく場合は表示するサブメモリをsubsxで指定できる。

plt.xscale("log",subsx=[0.02,0.04,0.06,0.08])

対数軸でプロットした後にメモリの数値表記スタイルを小数点表記(0.01など)に変える

plt.gca().xaxis.set_major_formatter(matplotlib.ticker.ScalarFormatter())
plt.gca().xaxis.set_minor_formatter(matplotlib.ticker.ScalarFormatter())

一応これでいけるけど、表示の微修正が必要なこともあるかも。例えば小数点単位を変えるなら同じ感じで……

plt.gca().xaxis.set_minor_formatter(matplotlib.ticker.FormatStrFormatter('%.g'))

など。表記変更はsubplotを使った方が簡単に調整できそうな印象。試してないけど。

軸のメモリの表示を回転

matplotlibの設定を変える場合。

plt.xticks(rotation =70)

subplotを変えたい場合。

色々あるけど……

ax1.tick_params(labelrotation=70)

2021年1月19日追記: これだとy軸のラベルも回転するな。

ax1.tick_params('x',labelrotation=70)

これでX軸だけ回転する。

軸のメモリの有無など

tick_paramsでセット。

ax2.tick_params(axis ='x', which ='both', top='off',bottom='off', pad=10)

軸メモリを任意の場所に手動でセット

plt.xticks([0.5,3,10,12],['0.5','3','10','12'])

特殊文字やテキスト表記

文字のアウトプットの時のアポストロフィ(’)の入れ方

ax1.set_ylabel('Young\'s Modulus',fontname='Arial')
ax1.set_ylabel("Young's Modulus",fontname='Arial')

下付き文字・上付き文字

ax2.set_ylabel('r"L$_{s}$"')
ax2.set_ylabel('r"L$^{s}$"')

プロットの仕方

たくさんプロットするときの順番を指定

重ね合わせの順番が重要な時には、zorderが使える。

plt.plot(x,y,zorder=0)
plt.plot(x,y,zorder=5)

便利プロット設定

テンプレその1、よく使う、マーカー、カラー、塗りつぶし

marker = ['o','x','D','v','+']
colour = ['c','m','g','orange','b']
fill = ['none','full','none','full','none']
for i in range(num):
  data = plots[i]
  plt.plot(data[lin1:lin2,0],data[lin1:lin2,1], marker[i],color=colour[i],fillstyle=fill[i],ms=8)

テンプレその2、アルファ値、スケール、描画の順番など

def plot_raw(plots,num1,num2):
num = len(plots)
marker = ['o','x','D','v','+']
colour = ['c','m','g','orange','b']
line = ['','','','','']
linewidth = [4,4,4,4,4]
fill = ['none','none','none','none','none']
alpha = [1,1,1,1,1]
scale = [1,1,1,1,1]
ms = [8,8,8,8,8]
zorder = [5,0,10,15,20]
        for i in range(num):
                data = plots[i]
                plt.plot(data[lin1:lin2,0],data[lin1:lin2,1]/scale[i], marker[i],color=colour[i],fillstyle=fill[i],ms=ms[i],alpha=alpha[i],ls=line[i],lw=linewidth[i],zorder=zorder[i])
        return

忘れた時に随時更新の予定。更新も忘れそうだけど。

関連記事

1. pythonのまとめ

D