簡體   English   中英

如何從 matplotlib 中創建包含元數據的壓縮可縮放矢量圖形

[英]how to create compressed scalable vector graphics including metadata from within matplotlib

  • matplotlib 允許生成 svgz 文件,壓縮率超過 90%
  • 使用 gzip -9 對 svg 文件進行外部壓縮更糟甚至更糟
  • xml.etree.ElementTree 允許將元數據定義為 svg 數據集,但顯然僅導出到 svg,而不是 svgz。

python中有沒有辦法將元數據添加到xml樹並以matplotlib.pyplot.savefig(..., format='svgz')實現的壓縮率將其導出到svgz?

也許你想這樣做

import io
from matplotlib.figure import Figure
from matplotlib.backends.backend_svg import FigureCanvasSVG

fig = Figure()
# do your fig stuffs

output = io.BytesIO()
FigureCanvasSVG(fig).print_svg(output)

現在,SGV 可以提取如下:

output.getvalue()

如果您正在尋找 SGVZ(gzip 壓縮),請嘗試:

FigureCanvasSVG(fig).print_svgz(output)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM