将 matplotlib 导出为 emf 并避免黑色背景填充

问题描述

前面的讨论 [1] 帮助我们将 matplotlib 图导出为 .emf 文件。然而,奇怪的错误输出文件节点填充黑色背景,如下所示。

如何获得与 .svg 完全相同的 .emf

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/js/standalone/selectize.min.js" integrity="sha256-+C0A5Ilqmu4QcSPxrlGpaZxJ04VjsRjKu+G82kl5UJk=" crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/selectize.js/0.12.6/css/selectize.bootstrap3.min.css" integrity="sha256-ze/OEYGcFbPRmvCnrSeKbRTtjG4vGLHXgOqsyLFTRjg=" crossorigin="anonymous" />


<select  id="selectitem" class="form-control" >
<option selected disabled="True">--- select --- </option>
  {% for result in showdrop %}
  <option value="{{result.id}}">{{result.item_name}}</option>
  {% endfor %}
</select>

enter image description here

解决方法

这只是答案的一半,即 SVG 的一半:

当您在 Inkscape 中选择这些方块之一时,您可能会注意到它在左下角填充指示器所在的位置显示“未设置填充”。

那是因为 matplotlib 完全忽略了 fill 属性。 SVG 中的有效值是“无”或不透明度 = 0 的填充颜色。

我在这里找到了一个关于如何确定填充颜色的链接: https://matplotlib.org/2.1.1/api/_as_gen/matplotlib.pyplot.plot.html

你应该能够从那里找出其余的,希望如此。