2017年11月29日水曜日

Jupyter Notebook の HTML を Blogger に乗っける (2017.11.29版)

以前の投稿(Jupyter Notebook の HTML を Blogger に)で、

長い長いCSSを投稿に貼り付ければできると書いていたが、
毎回コピペするのも面倒だし、
「body」と「/body」のタグで挟むことが必要(?)だったのでちょっとなあと思っていた。
しかも、Bloggerの仕様が変更になったのか、当該CSSが見れなくなってた!

試しにBloggerのカスタムCSSのところに全部コピペしてみたら、
<body></body>の内側(bodyタグは含まず)をコピペするだけでいけることがわかった。
以降の投稿ではこのスタイルでやっていこうと思う。

結局カスタムCSSに貼り付けたのは次のもの:



2017年11月15日水曜日

Matplotlib.pyplot で複数の数式フォントを一度に出力


結果図の例(TexフォントのComputer Modern)はこちら


グラフ中の数式フォントを変えつつ、同じグラフを一度に表示する方法。

  • Texフォントこと Computer modern
  • Times New Roman系の stix
  • サンセリフ系の arial
  • Wordの数式と近い cambria
  • グラフの線をカラーにした arial

について描画します

This page show how to display several font all at once.
Computer modern, stix (Times New Roman), arial, cambria and arial (with colored line) are displayed.
In [1]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
In [2]:
xx = np.linspace(0,2,10)
y1 = xx
y2 = xx**2
y3 = xx**0.5
In [3]:
fonts1 = ["Times New Roman","Times New Roman","Arial","Times New Roman","Arial"]
fonts2 = ["cm","stix","dejavusans","custom","dejavusans"]
fonts3 = ["cm","times","arial","cambria","arial_color"]
colors = [ ["k"]*3 for i in range(4) ]
colors.append(["g","b","r"])
for font1,font2,font3,color in zip(fonts1,fonts2,fonts3,colors):
    plt.figure(figsize=(4,3),facecolor="w")
    plt.rcParams["mathtext.fontset"] = font2
    if font2 == "custom":
        plt.rcParams['mathtext.default'] = 'it'
        plt.rcParams["mathtext.it"] = "Cambria:italic"
        plt.rcParams["mathtext.bf"] = "Cambria:italic"
        plt.rcParams["mathtext.rm"] = "Times New Roman"
        plt.rcParams["mathtext.sf"] = "Cambria:italic"
        plt.rcParams["mathtext.tt"] = "Times New Roman" # 添え字が太字になってしまったのでttで回避する
    plt.rcParams["font.family"] = font1
    plt.plot(xx,y1,color=color[0],label="$x$")
    plt.plot(xx,y2,color=color[1],label="$x^2$")
    plt.plot(xx,y3,color=color[2],label="$\sqrt{x}$")
    plt.legend()
    plt.savefig("hoge_%s.png"%(font3),bbox_inches="tight",pad_inches=0.02)
    plt.show()