ваш matplotlib может работать в неинтерактивном режиме по какой-то причине. Я не уверен, как предотвратить это в вашей локальной конфигурации, но если вы добавите либо:
plt.ion()
или это:
matplotlib.interactive(True)
где-то в начале вашего сценария, это должно изменить поведение ваших сюжетов.
Вы можете найти пустые текстовые узлы с помощью XPath, а затем удалить их программно следующим образом:
XPathFactory xpathFactory = XPathFactory.newInstance();
// XPath to find empty text nodes.
XPathExpression xpathExp = xpathFactory.newXPath().compile(
"//text()[normalize-space(.) = '']");
NodeList emptyTextNodes = (NodeList)
xpathExp.evaluate(doc, XPathConstants.NODESET);
// Remove each empty text node from document.
for (int i = 0; i < emptyTextNodes.getLength(); i++) {
Node emptyTextNode = emptyTextNodes.item(i);
emptyTextNode.getParentNode().removeChild(emptyTextNode);
}
Этот подход может быть полезен, если вам нужен больший контроль над удалением узлов, чем легко достигается с помощью шаблона XSL .
Попробуйте использовать следующий XSL и элемент strip-space
для сериализации вашей модели DOM:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
http://helpdesk.objects.com.au/java/how-do-i-remove-whitespace-from-an-xml-document