Category: SymPy & SPB

新しい弘大 JupyterHub の matplotlib や sympy-plotting-backends で日本語を表示させる設定

matplotlib でタイトルやラベル・凡例に日本語を表示させる場合には,

import japanize_matplotlib

すればよい,というのが検索すれば出てくる。確かに matplotlib だけならこれでいいが,試してみたところでは新しい弘大 JupyterHub の sympy-plotting-backends では import japanize_matplotlib しても日本語フォント部分がトーフになる。

そんなときは,あらかじめ

fc-list | grep Noto

で Noto フォントがインストールされていることを確認し,~/.config/matplotlib/matplotlibrc に以下のようにフォント設定を書く。

## If you wish to change your default style, copy this file to one of the
## following locations:
## Unix/Linux:
## $HOME/.config/matplotlib/matplotlibrc
## Other platforms:
## $HOME/.matplotlib/matplotlibrc
##
## matplotlib や sympy plotting backends で日本語フォントを使う
##

font.serif: Noto Serif CJK JP, DejaVu Serif, Bitstream Vera Serif, Computer Modern Roman, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
font.sans-serif: Noto Sans CJK JP, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
font.monospace: Noto Sans Mono CJK JP, DejaVu Sans Mono, Bitstream Vera Sans Mono, Computer Modern Typewriter, Andale Mono, Nimbus Mono L, Courier New, Courier, Fixed, Terminal, monospace

こうすれば,import japanize_matplotlib は不要で日本語がトーフにならずに表示される。

旧 JupyterHub では受講学生の便宜をはかるために管理者権限で system-wide な matplotlibrc を書き換えていたが,新 JupyterHub ではそのような権限もないので,ユーザー毎に設定してもらうほかないが,どうやってこの設定を受講学生にやってもらうかが悩みの種。

高さ h からの斜方投射の最大水平到達距離を解析的に求める

高さ h からの斜方投射の最大到達距離を求める準備」のページを参照。

最大水平到達距離となる打ち出し角度 $\theta$ を求めるには,平方根を含む非線形方程式を解く必要があるので,SymPy でやってみた。

続きを読む

gnuplot, Maxima, Python グラフ作成・比較

同等の対象を

  • gnuplot
  • Maxima (plot2d(), draw2d())
  • Python の Matplotlib の plt.***, ax.***
  • Python の SymPy Plotting Backends
    • The Graphic Module
    • Plot functions

でグラフにしてみるシリーズ。 続きを読む

Python で作成したグラフの部分だけを pdf として保存する:アップデート版

以前,「Python で作成したグラフの部分だけを pdf として保存する」のアップデート版。最近の弘大 JupyterHub の環境では,(matplotlib のバージョンアップにより)特にエラーが出ることもなく,簡単に pdf として保存できる。また,保存するファイル名の拡張子を .pdf から他の,たとえば .svg に変更すればそのまま svg として保存できる。

続きを読む

パーセクの定義とハッブル定数・ハッブル年齢

パーセクの定義に $1$ 秒角の $\tan$ (あるいは $\tan$ の逆数である $\cot$)がいらなくなって,$\displaystyle 1 \mbox{pc} = \frac{\mbox{au}}{\tan 1^{\prime\prime}} = \mbox{au}\ \cot 1^{\prime\prime}$ ではなく,新定義 (IAU 2015 Resolution B2) では
$$1 \mbox{pc} \equiv \frac{\mbox{au}}{1^{\prime\prime}} = \frac{648000}{\pi} \mbox{au}$$

となったという話。

続きを読む

tan(x) などの不連続点をつなげないグラフを描く

 

初等関数のグラフを描く際,$y=\tan x$ や $y=1/x$ などの不連続点を無造作に線でつなぐケースがあったので,不連続点を無造作につなげないようなグラフの描き方をまとめてみた。 続きを読む

SymPy Plotting Backends で楕円や回転楕円体を描く

理工系の数学 B の授業で,楕円の周長や面積,回転楕円体の表面積や体積を求めているので。

続きを読む

SymPy Plotting Backends で複数の曲線を一気にグラフにする例とオプション設定例

Python の SymPy Plotting Backends を使って,パラメータを変えて複数の曲線を一気にグラフにする例。グラフを描く際のオプションの設定についても2通りの例をまとめた。 続きを読む

SymPy Plotting Backends で ax を設定すると微妙にグラフのサイズが小さくなる件

続きを読む

from sympy.abc import * する際の順番と追記事項

sympy.abc のコードには,

Caveats
=======

1. As of the time of writing this, the names ``O``, ``S``, ``I``, ``N``,
``E``, and ``Q`` are colliding with names defined in SymPy. If you import them
from both ``sympy.abc`` and ``sympy``, the second import will "win".
This is an issue only for * imports, which should only be used for short-lived
code such as interactive sessions and throwaway scripts that do not survive
until the next SymPy upgrade, where ``sympy`` may contain a different set of
names.

とある。また,sympy.abc にはギリシャ文字の大文字が定義されていない。したがって,今後は以下のようにしたらどうか,というメモ。 続きを読む

Load more