matplotlib でフォントの比較

jupyter labを使って以下のグラフを書いて比較してみました。
コードはgithubの下記リンクのページにおきました。
ttcフォントも直接指定すれば使用できるようです。

  比較フォント一覧

Noto Sans CJK JP
Arial
times New Roman
ヒラギノ角ゴシック
ヒラギノ明朝
メイリオ
游ゴシック
游明朝

Mac
https://github.com/gatamix/py_mat_graph/blob/master/1_1gragh.ipynb
windows
https://github.com/gatamix/py_mat_graph/blob/master/1_2gragh.ipynb

参考まで。

written by gatamix

–スポンサーリンク–
お気に入り!! Classic!! 🎤🎤🎤🎤🎤
Illmatic / Nas

itunes

amazon

表みたいなグラフを書いてみる

前回のはいまいちだったので強引に作ってみました。使ったのは、pythonのmatplotlib,Graphic,Keynoteです。
まず、コードは以下。

表をテキストで強引に書きました。一応複数のリストにも対応できるように書いたつもりです。
できあがったグラフ。


SVGにしてGraphicで注目させる値の色を変えてみる。
そして,keynoteでそれっぽくするとこうなる。

written by gatamix

matplotlibで表の中にグラフを書いてみる

表題にあるようにmatplotlibで表の中にグラフを書いてみます。
エクセルの機能でデータバーという機能があるのですが、matplotlibで似たような表グラフを再現します。
エクセルのほうが楽かもしれませんが。。。
プレゼンでは、わかりやすく効果があるかもしれません。

written by gatamix

ラズパイ(43) 再インストール3回目とpyenvのインストール

再インストール3回目です。

早速記録をまず最新版のRaspbianのimgファイルをダウンロードします。
ダウンロード時間は結構かかる。

というようにバージョンがアップしてました。

sshから設定をしました。

書いたとおり、touch コマンドでsshという名前のファイルを作れば、sshできます。
詳しくはリンク先。
$sudo raspi-config
でローカルの設定などをしました。

これはgitを使ってみたかっただけです。

アップグレードしますが、時間が長かったです。
コマンドは
$sudo apt-get update
$sudo apt-get upgrade

pyenvをインストール(詳細はリンク先)


numpy とmatplotlib をインストール。今回はpipですんなりできた。

sudo pythonとすると、バージョンが違う。ユーザーの環境変数の設定が違うためらしい。

python関連動画(1)

jupyter notebook(pandasとmatplotlib)の使い方を紹介しているyoutube動画を見つけました。
英語ですが動画なので、わかりやすいです。メモ的な記録として投稿しておきます。

Matplotlibの日本語フォントの追加

フォントを追加します。
Matplotlibは現在、ttcに対応していないため。ヒラギノやメイリオを使用することができません。
追記:対応しています。(2019.1.28)

数字と英語のみの場合は”times new roman” や “arial”でいいかもしれませんが、
日本語のフォントを使用できないので、NotoSans CJK jpを site-packagesのにある/matplotlib/mpl-data/fonts/ttf にダウンロードしてきた。NotoSansCJKjp-Regular.otfをいれます。
他のNotoSans CJK jpフォントを入れると太さがいまいちだったのでこのフォントだけいれました。
fontList.py3k.cacheを削除すると使用することができます。

windows Mac ともに同様に変更できます。

追記 Texでの数式の表示のフォントも以下のように変更できるようです。

plt.rcParams[“mathtext.fontset”] = ‘フォントタイプ’

“stix”
‘cm’
‘stixsans’
の三種類がとりあえず使用できるようです。

written by gatamix

matplotlibでエミッター接地のトランジスターの静特性のグラフを描く

表題にあるように、教科書に載っているようなエミッター接地のトランジスターの静特性のグラフを描きます。

KURO
トランジスターの静特性って一枚のグラフで描けるの?
NIKE
Matplotlibを使うと以外に簡単にできるんです。
KURO
ちょっとコードをみるとなかなか大変そう。
NIKE
でも前の記事にある4つのグラフを強引に一枚にするやり方の応用ですよ。要は、plt.axes()をつかっているだけです。ただデータの個数やラベルでコードが長くなっているだけだよ。

コードは以下。

描いたグラフです。
さらに原点のラベルも調整するといいかもしれません。

追記
もう少し体裁を整えるとここまでできます。

written by gatamix

matplotlibの軸を中心にする(強引)

matplotlibの軸を中心に持ってくる方法です。
少し強引な力わざです。
グラフを4分割して軸のメモリを中心にします。
4つのグラフを一つにする方法は、よく教科書にあるトランジスターの静特性を描画するのに応用できそうです。

KURO
plt.axes()でグラフの位置を指示しているのがポイントだよ。
NIKE
plt.subplot()でもグラフを複数描けるけど、自動でサイズが調整されるからplt.axes()を使っています。

次の記事で実際にトランジスターの静特性を描いてみました。

written by gatamix

matplotlib でアニメーション

matplotlib でアニメーションのグラフを作ってみました。
sinとcosをFuncAnimationのほうで書いてみました。
imagemagickのインストールしていない場合は、インストールしないとエラーがでます。

参考

KURO
シアンのSin波から見るとオレンジのCos波が進んでいることがわかるよ

written by gatamix

Python Matplotlibでグラフの範囲を自動的に設定 & scipy でピークの検出

Gatamixです。
Matplotlib でグラフを範囲を自動で設定するようにプログラムしてみました。
通常でも自動で範囲が設定されますが、プログラムで設定してみました。
具体的には、以下のようなことをしています。
①最小と最大の値を算出する。
②最大と最小の差をとる。(温度の場合は下限値の設定は0℃で固定とするため、最大値とした。)
③差の20%をマージンとして設定する。
④範囲を設定する。(範囲の最大値と最小値にマージン分の余裕をとる。)
また、おまけで以下のこともしています。
scipyを使ってピークの算出を行って、ラベルをプロット。
y1、y2軸の小数の有効桁の指定。

KURO
scipyのメソッドの signal.argrelmax()で上側のピーク,signal.argrelmin()で下側のピークを検出できるよ

written by gatamix