ihu*_*ton 27 python metadata matplotlib
我希望能够确定我使用matplotlib创建的图形的出处,即知道我的代码和数据的哪个版本创建了这些图形.(有关出处的更多信息,请参阅本文.)
我想最简单的方法是将代码和数据的修订号添加到已保存数字的元数据中,或者作为postscript文件中的注释添加.
在Matplotlib中有没有简单的方法可以做到这一点?该savefig功能似乎不具备此功能,但有人提出了可行的解决方案吗?
Hoo*_*ked 15
我不知道使用的方法matplotlib,但您可以使用以下内容向png添加元数据PIL:
f = "test.png"
METADATA = {"version":"1.0", "OP":"ihuston"}
# Create a sample image
import pylab as plt
import numpy as np
X = np.random.random((50,50))
plt.imshow(X)
plt.savefig(f)
# Use PIL to save some image metadata
from PIL import Image
from PIL import PngImagePlugin
im = Image.open(f)
meta = PngImagePlugin.PngInfo()
for x in METADATA:
meta.add_text(x, METADATA[x])
im.save(f, "png", pnginfo=meta)
im2 = Image.open(f)
print im2.info
Run Code Online (Sandbox Code Playgroud)
这给出了:
{'version': '1.0', 'OP': 'ihuston'}
Run Code Online (Sandbox Code Playgroud)
Ale*_*dro 10
如果您对PDF文件感兴趣,那么您可以查看matplotlib模块matplotlib.backends.backend_pdf.在这个链接上有一个很好的例子,它可以"浓缩"成以下内容:
import pylab as pl
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
pdffig = PdfPages('figure.pdf')
x=np.arange(10)
pl.plot(x)
pl.savefig(pdffig, format="pdf")
metadata = pdffig.infodict()
metadata['Title'] = 'Example'
metadata['Author'] = 'Pluto'
metadata['Subject'] = 'How to add metadata to a PDF file within matplotlib'
metadata['Keywords'] = 'PdfPages example'
pdffig.close()
Run Code Online (Sandbox Code Playgroud)
从matplotlib 版本 2.1.0 开始, savefig 命令接受关键字参数metadata。您传入一个字典,其中包含要保存的字符串键/值对。
这仅适用于某些'agg'PNG 文件的后端。
对于 PDF 和 PS 文件,您可以使用预定义的标签列表。
| 归档时间: |
|
| 查看次数: |
3597 次 |
| 最近记录: |