每次运行代码时,如何让Jupyter Notebook或matplotlib在SVG元素上使用相同的ID?
我正在使用Jupyter Notebook和matplotlib将某些数据绘制为SVG格式的图形。我的代码包含以下语句以选择输出目标和格式:
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
它产生的图形都是正确的。但是,每次重新生成图形时,它们的SVG代码都会略有不同。例如,当我运行笔记本一次时,它生成的SVG可能包含以下代码:
<clipPath id="pdd56173d2c">
<rect height="217.44" width="334.8" x="51.804688" y="22.318125"/>
</clipPath>
请注意该元素中的ID“ pdd56173d2c”。它将被SVG中的许多其他元素引用,例如:
<path clip-path="url(#pdd56173d2c)" d="M 77.398902 239.758125 L 77.398902 22.318125"
style="fill:none;stroke:#b0b0b0;stroke-linecap:square;stroke-width:0.8;"/>
在不更改代码或数据的情况下,只需再次运行笔记本将产生相同的图形,但是SVG元素现在将具有不同的ID。例如,下一次我运行该ID时,其标识为“ pb3483d71dc”,而不是“ pdd56173d2c”。
这种差异完全不会改变图形的外观。但是,由于我要将笔记本的更新提交到GitHub,因此git告诉我有数百项更改。 (或者当我的笔记本包含多个图形时发生数千个更改。)这阻止了一些git客户端和GitHub显示笔记本的差异,因此我无法比较我有意更改的文档的其他部分。
如何消除那些无意间的差异?