matplotlibで数直線を描く

はじめに

Colabで遊んでいます。

数直線number lineをmatplotlibで描いて見ました。コードセルにimport matplotlib.pyplot as pltとして書いて、実行すると描画がされます。svgにも吐き出せたので、ここではsvgで貼り付けました。

コード

まずは両端を矢印にするのにどうしたらよいか苦労しました。メモリに数字をつけるのもようやくできました。 はじめからSVGで描いた方が簡単だったと思うけど、matplotlibの勉強にはなったと思う。

import matplotlib.pyplot as plt
import numpy as np

ax=plt.figure(figsize=(12,6)).add_subplot(xlim=(-4,4), ylim=(0, 1.0))

plt.arrow(-3.5, 0.5, 7, 0, head_width=0.05, head_length=0.15, linewidth=4, color='b', length_includes_head=True)
plt.arrow(3.5, 0.5, -7, 0, head_width=0.05, head_length=0.15, linewidth=4, color='b', length_includes_head=True)

x = [-3, -2, -1, 0, 1, 2, 3]
y = [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
data_name = ["-3", "-2", "-1", "0", "1", "2", "3"]
plt.plot(x, y, 'r|', ms="40")

for (i, j, name) in zip (x, y, data_name) :
    plt.text(i, j, name, fontsize=15, position=(i-0.05, j-0.2))

plt.savefig("numberline.svg")
plt.show()

画像

次に主力された画像(数直線)です。

heightwidthをいじれば小さくできると思うけど、とりあえずそのままのせます。

Ubuntu 20.04で音がでない(半分解決)

Ubuntu 20.04にして、Netflix もちゃんとみれて音も出ていたのですが、midiフ ィアルを鳴らすのに使っていた timidity が使えなくなっていて

timidity sample.midi

というように音を鳴らしていたの鳴らなくなっていました。

そこで調べると、いまは fluidsynth というを使うらしいということで、

sudo apt install fluidsynth

して、

fluidsynth --audio-driver=alsa -o audio.alsa.device=hw:0 /usr/share/sounds/sf2/FluidR3_GM.sf2 sample.midi

したら midi ファイルは鳴るようになったのですが、今度はNetflixの音がでなくなってしまいました。

逆にNetflixや多分YouTubeを聞いたあとに fluidsynth を起動しようとすると、

fluidsynth: error: The "hw:0" audio device is used by another application

とエラーで落ちます。鳴らない。

解決策を探すと、Ubuntu の音は通常(Netflixなど)は、pulseaudioというので鳴っているのでこれを止めれば、fluidsynthが使えて、Netflixを見る時は pulseaudio を戻せばいいらしい。

pulseaudio を止めるのは

echo "suspend 1" | pacmd

で、もとにもどすには、

echo "suspend 0" | pacmd

ということで、あまりスマートな解決方法ではないですが、とりあえず両方聞けるようになりました。

追記:

またNetflixなどで音がでなくなったのですが、Ubuntuの設定のサウンドの画面を開いたら、鳴り出しました。閉じたら音が止まった。ウィンドウを最小にしておけばじゃまにはならないからまあいいのですが、なぜだかわからない。ほんとにスマートでないなぁ。

テスト Colab GitHub 連携

Open In Colab

はじめに

GitHubとColabの連携はわかりました。 だいたいわかったと思う。 とりあえず使えています。 で、これをはてなとかQiitaの記事にする場合、Colabのファイルメニューにマークダウンに変換がないみたいなので、一旦パソコンで

jupyter nbconvert --to markdown filename.ipynb

として、できあがったfilename.mdをテキストエディターで開いて貼り付けるというのをかんがえました。

その際、GitHubでのファイル名とかOpen in Colabボタンとかはどうなってしまうのか。実験してみよう。

はてなでの実験結果

このファイルはhttps://github.com/kalz2q/myjupyternotebooks/blob/master/test_markdown001.ipynb です。これをColabで編集して、GitHubに保存するときにできるOpen in Colabというボタンがあります。

nbconvertしてできた.mdファイルをはてなに貼り付けると、Open in Colabボタンも貼り付けられますが、リンクしているのははてなの記事ではなく、もとのGitHubのファイルです。まああたりまえか。

ということは明示的にGitHubのファイル名を書かなくてもボタンのリンク先から辿れるので隠していることにはならない。が、書いた方がはっきりする、というところか。

SVGテスト

SVG画像を貼る実験の続きです。 毎日1枚くらい描きたいなぁ。 絵を貼るだけでなく、文章も必要ですよね。 考えます。 どうやって描いたの? とか質問があるとうれしい。

今回は div style="display:grid; place-items:center" というのを使ってセンタリングしました。

SVGテスト

test test test ipad affinity deisgner のデザイナーペルソナでベクトルで絵を描いて、書き出しペルソナでsvg出力したテキストをコピーしてはてなMarkdown編集で貼り付けました。

サイズはsvg widthで指定して、全体を div で囲んで div style="text-align: center;" でセンタリングです。

これがやりたかったことなので、満足。

アラビア語単語帳をつくりました

はじめに

スマホの語学アプリにDuolingoというのがあります。 遊んでいるうちにどんどん語学が身につくというすぐれもの。

これがいいのが音がついていること、無料で使える範囲が広いこと、英語経由になってしまうけどたくさんのめずらしい言語があること、スキマ時間を使えること、デスクトップのウェブアプリと連携していること、などです。

試しにアラビア語を始めてみました。

あのアラビア文字がすらすら読めるようになりました。 感動!!!!

しかし!!! 単語を覚えるのが並大抵でなくたいへん。

そこでスマホ用に単語帳をつくってみました。

使い方

スマホブラウザー

https://kalz2q.github.io/elm-examples/Arabic001.html

を開くだけ。

開くたびに単語カードがランダムに並べ替えられますので何度でも使えます。

いま単語数は1000くらいありますが順次増やして行く予定です。

単語だけでなく例文も入っています。

説明

スマホに画面を最適化しているので、デスクトップで開くと横にやたらに長いカードになってしまっています。

プログラムはelmで書いて、elmでhtmlに変換しています。

データとプログラムも同じgithubにありますので興味のあるかたは見てみて下さい。

アラビア語のフォントはお使いのマシンに依存します。

カードの構成は

Duolingo方式のローマ字での発音。

カタカナとひらかな混在表示の発音(後述)

アラビア文字(母音記号付き)による表記。

英語による意味。

なので単語検索は英語の意味で検索する以外は無理かと思いますが、検索したいときはブラウザのページ内検索を使うことになります。 けっこう使えます。

カナ表示の発音について

ローマ字での発音を基本にしていただけるといいのですが、アラビア語をカナで表示すると覚えるのに便利な面もあるので、laはラ、raはら、というように工夫してみました。

不十分ですが、そこそこ使えると思います。

l = ラリル
r = らりる
f = ファフィフ
h = ハヒフゥ
H = はひふ
kh = クハ クヒ クフ
s = サスィス
S = すぁすぃすぅ
th = さしす
t = タティト
T = たてぃと
d = ダディド
D = だでぃど
z = ザズィズ
dh = ざじず
Dh = づぁづぃづぅ
3 = あ あぃ あぅ

以上

新型コロナウイルス。 今の考え。 少し陰謀論。

新型コロナウイルスで人口あたりの死亡率が西ヨーロッパとアメリカで高くてそれ以外では低い。 中国、中南米、アフリカ、イランを含めてもヨーロッパとアメリカの大量の死者数と比べると桁違いです。 この理由は交差免疫以外には考えられない。

つまり、新型コロナウイルス武漢から発生する以前にヨーロッパとアメリカ以外には似たようなコロナウイルスが普通に蔓延していたので今回の死者数が少ない。

あと、PCR検査を大々的にやったところでの死者数が高い。

免疫の専門家にとってPCR検査はスクリーニングに使えないことは常識なのに、あえてやったのは政治的理由がある。

陰謀だと思う。 世界のPCR検査キットのメーカー、輸出国、を調べるべきたと思います。

PCR検査をやること自体が新型コロナウイルスの流行を促進した。 鼻粘膜に傷をつけてウイルスを植え付けることになってしまった。

さらに想像をふくらませると、なぜヨーロッパとアメリカでは交差免疫が成立していなかったかというと中国人濃度が低く、差別があるので、白人との接触も少なかった。 ヨーロッパとアメリカでは人と人との社会的距離がアジアと比べて遠い。

いま言われていることと全く逆なのでとまどうかもしれませんが、ヨーロッパで暮らして握手とハグ以外に人が接触することはまずないのに比べると、日本を含め他の国は人が密集して暮らしている。

武漢では多量に死んで、北京や上海では流行らなかったか、についての説明もできる。

中国はそもそも免疫ができていた。 武漢春節前の大宴会がなければ大丈夫だった。 大々的に検査・隔離したことも裏目に出た。

武漢で学習したので、北京、上海ではロックダウンと限定的な検査・隔離することによって収まった。

イタリアは中国人が多いのでコロナが流行したと言うが、日本やタイの中国人濃度と比べたら一桁少ないので理由にならない。

世界中に中華街があるが、どこでも流行っていない。 なぜなら免疫があるから。

アメリカで黒人の死亡率が高いのは貧しいからではなく、清潔な社会で免疫がない上に人と人の距離が近いから。

要するに、多少ずれていても、違っていても、ある種の集団免疫がある方が、新規の病原菌、ウイルスには強い社会と言えるのではないか。 あまり清潔なのはよくない、という結論。

ちょっと極端だったかな。 たぶん間違っていると思うので反省。

そそ。 少し予言をしておくと、PCR検査に余裕ができてきたのでこれから日本では陽性率が上がっていくと思う。 PCR検査や抗体検査の感度はいいかげんなので検査すればするほど、陽性の人がみつかる。

マスコミと、知事たちは、たいへんたいへん、第二波が来る、と騒ぐので社会的にいろいろ不都合がでては消えていくけど、オーバーシュートはないので、だんだん収まる。 という予定。 これも間違っていると思うので事前にごめんなさいです。