画像テストページ

テスト環境:Mac Studio (Apple M4 Max, 2025) macOS Sequoia 15.5, Python 3.13.5, Matplotlib 3.10.3

~/.matplitlib/matplotlibrc:

backend: MacOSX
font.family: Hiragino Sans
font.weight: 400

テストコード:

import matplotlib.pyplot as plt

plt.plot([-1, 1])
plt.title("日本語タイトル")

plt.savefig("filename.png", bbox_inches="tight")
plt.savefig("filename.webp", bbox_inches="tight", pil_kwargs={"lossless": True})
plt.savefig("filename.jpg", bbox_inches="tight")
plt.savefig("filename.svg", bbox_inches="tight")
plt.savefig("filename.svgz", bbox_inches="tight")

filename.png (22905バイト)

png

filename.webp (6864バイト) (ロスレス)

webp

filename.jpg (17292バイト)

jpg

filename.svg (24168バイト)

svg

filename.svgz (6355バイト)

svgz

PDFについては次で実験:

import matplotlib.pyplot as plt

plt.rcParams["font.family"] = ["Source Han Sans"]
plt.rcParams["font.weight"] = "normal"

plt.plot([-1, 1])
plt.title("日本語タイトル")

plt.savefig("filename.pdf", bbox_inches="tight")

filename.pdf (9124バイト)

pdf

フォントを埋め込まないSVG:

import matplotlib.pyplot as plt

plt.rcParams["font.family"] = ["sans-serif"]
plt.rcParams["font.weight"] = "normal"
plt.rcParams["svg.fonttype"] = "none"

plt.plot([-1, 1])
plt.title("日本語タイトル")

plt.savefig("filename2.svg", bbox_inches="tight")

filename2.svg (11285バイト)

svg

拡張子 svgz のファイルは,単に svg を gzip で圧縮しただけのものである。これをファイルとして開いて表示できるブラウザは残念ながらなさそうである。ネット越しなら,svg を表示できるブラウザは svgz も表示できる。ただし,そのためにはまず,Webサーバの /etc/mime.types に

image/svg+xml svg svgz

という行が必要である。なければ httpd.conf (/etc/httpd/conf あたりに入っている) に

AddType image/svg+xml svg svgz

と書き込んでおけばよい。これに加えて,httpd.conf には

AddEncoding gzip svgz

という行も必要である。httpd.conf の編集が難しい場合は,画像と同じディレクトリ(または親ディレクトリ)に .htaccess というファイルを作って,httpd.conf に書き込むべきことを書き込んでおく。

苦労して svgz にしなくても、svg のままでもたいていはサーバ・ブラウザ間で勝手に圧縮される。例えば okumuralab.org の場合は Brotli圧縮 されるはずである。


Last modified: