matplotlib

Gists

Snippets

フォントが未追加のときに TTF から追加する


%matplotlib inline  
import matplotlib.pyplot as plt
from matplotlib import font_manager
if 'VL Gothic' not in font_manager.fontManager.ttflist:
    path_to_ttf = '/usr/share/fonts/truetype/vlgothic/VL-Gothic-Regular.ttf'
    font_manager.fontManager.addfont(path_to_ttf)
plt.rcParams['font.family'] = 'VL Gothic'
plt.rcParams['font.size'] = 14

可搬性のために複数フォントを指定する


%matplotlib inline  
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = [
    'Rounded Mplus 1c', 'Hiragino Maru Gothic Pro', 'IPAPGothic', 'Meiryo']

グラフを画像ファイルまたは Base64 文字列に保存する


%matplotlib inline  
import matplotlib.pyplot as plt
from IPython.display import HTML, display
import base64
import io

def to_figure(filename, format='png', bbox_inches='tight'):
    # 画像ファイル名指定時はファイルに保存、未指定時は base64 文字列をコピーするボタンを表示。
    kwargs = {'format': format, 'bbox_inches': bbox_inches}
    if filename is not None:
        plt.savefig(filename, **kwargs)
        return
    pic_io_bytes = io.BytesIO()
    plt.savefig(pic_io_bytes, **kwargs)
    pic_io_bytes.seek(0)
    base64_img = base64.b64encode(pic_io_bytes.read()).decode('utf8')
    display(HTML(f"""
    <button onclick="navigator.clipboard.writeText('{base64_img}')">Copy Image as Base64</button>
    """))

# <img width="80%" src="data:image/png;base64, ここにペースト />