初めに
神は細部に宿る,と云う.
論文を読んでいると,偶に,「変に引き伸ばしたグラフだな」とか「ちょっと横に長いな」とか思うことがある.逆の立場になって,自分の論文を読んでもらうときには,「綺麗だな」と思ってもらえなくても,少なくともストレスなく読んでもらいたい.
というわけで,論文に貼り付けるグラフのアスペクト比を幾つか検討する.
一般的に「美しい」とされる貴金属比と幾つかの比率で,グラフを描画してみる.
貴金属比
貴金属比(metallic mean / ratios)とは,1と次のような連分数(continued fraction)で表される(第$n$)貴金属数との比のことを指す.
n + \cfrac{1}{n+\cfrac{1}{n+\cfrac{1}{n+\cfrac{1}{n+\cdots}}}}
= [n; n, n, n, n, \cdots]
= \frac{n + \sqrt{n^2 + 4}}{2}
ただし,$n$は自然数.
すなわち,
1 : \frac{n + \sqrt{n^2 + 4}}{2}
が(第$n$)貴金属比である.$n = 1, 2, 3$のとき,特別に名前がついている.
黄金比(第1貴金属比)
第1貴金属比は黄金比と呼ばれる.
1 : \frac{1 + \sqrt{5}}{2}
\simeq 1 : 1.618
\simeq 5 : 8
白銀比(第2貴金属比)
第2貴金属比は白銀比と呼ばれる.
1 : 1 + \sqrt{2}
\simeq 1 : 2.414
\simeq 5 : 12
青銅比(第3貴金属比)
第3貴金属比は青銅比と呼ばれる.
1 : \frac{3 + \sqrt{13}}{2}
\simeq 1 : 3.303
\simeq 5 : 16
大和比
「白銀比」という言葉は,第2貴金属比と大和比の2つを指すらしい.先に記したのは,「第2貴金属比としての白銀比」である.「大和比としての白銀比」は,以下である.
1 : \sqrt{2}
\simeq 1 : 1.414
\simeq 5 : 7
白金比
白金比は貴金属比ではない.が,美しいとされるらしい.大和比に似ている.
1 : \sqrt{3}
\simeq 1 : 1.732
\simeq 5 : 9
比較
第2,第3貴金属比はグラフのアスペクト比として使うには縦長 / 横長すぎる.
白金比($5:9$),黄金比($5:8$),大和比($5:7$)を比較する.
比較に使う図は,MatplotlibのStyle sheets referenceを基に作成する(一つの図に載せるデータは高々4~5程度にすべきと思っているので,若干修正している).
白金比($5:9$) | 黄金比($5:8$) | 大和比($5:7$) |
---|---|---|
plt.style.use("default")
などとして,図化のスタイルを変更できるので,幾つかのスタイルで試す(クリックしてズーム).
seaborn | classic | bmh | ggplot | |
---|---|---|---|---|
白金比 | ||||
黄金比 | ||||
大和比 |
終わりに
個人的には大和比($5:7$)が好きな気がする.
Appendix
MatplotlibのStyle sheets referenceを基に作成した.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-10., 10., 21)
shifts = np.linspace(-5, 5, 5)
amplitudes = np.linspace(1., 2., 5)
def sigmoid(x, x0):
return 1 / (1 + np.exp(-(x - x0)))
style = "default"
plt.style.use(style)
ratio = (9, 5)
plt.figure(figsize=ratio)
for i, (x0, a) in enumerate(zip(shifts, amplitudes)):
plt.plot(x, a * sigmoid(x, x0), marker="s", label=f"Series-{i}")
plt.legend(loc="upper left", facecolor="w", framealpha=1.)
plt.xlim([-10., 10.])
plt.ylim([-.2, 2.2])
plt.tight_layout()
plt.show()