Matplotlib 2.2.2无法xkcdify plots

2024-05-20 17:21:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python3.5.2中使用matplotlib2.2.2

当我尝试使用matplotlib的xkcd函数时,我得到了一个普通的图形:

import matplotlib
print(matplotlib.get_cachedir())
print(matplotlib.__version__)

import matplotlib.font_manager
x = [f.name for f in matplotlib.font_manager.fontManager.ttflist if f.name.startswith("Humor")]
print(set(x))

from matplotlib import pyplot as plt
import numpy as np

plt.xkcd(scale=10, length=100, randomness=20)
plt.plot(np.sin(np.linspace(0, 10)))
plt.title('Whoo Hoo!!!')
plt.show()

输出:

/home/thatsme/.cache/matplotlib
2.2.2
{'Humor Sans'}

所以,安装了hurm Sans之后,我删除了字体缓存,以防万一,正如其他线程所建议的那样,我增加了抖动参数,但是没有任何xk修改的迹象:

enter image description here

奇怪的是,我在ubuntu16.04和windows10上安装了Eclipse作为双引导,而xkcd函数在这两个系统上都失败了。我本以为Python和Eclipse的安装在这两个系统之间会有很大的不同,但现在我们看到了。
有什么想法,有什么问题吗?在

编辑:正如Hans指出的,这可能是matplotlib 2.2.2特有的问题
更奇怪的是,如果我使用with :运行相同的脚本,而不做任何其他更改,比如

^{pr2}$

输出是预期的xkcd数字: enter image description here

删除with :语句将返回第一个图。在Linux和Windows上同样的行为,所以看起来是matplotlib版本问题。在

编辑:现在我们知道这是一个暂时的、有限的错误,回到主要问题-How to get rid of the white edgecolor in xkcd


Tags: 函数nameinimportgetmatplotlibasnp
1条回答
网友
1楼 · 发布于 2024-05-20 17:21:05

这是matplotlib2.2中纯粹存在的一个bug。问题是垃圾收集器太快了。见this comment and below。在

这意味着你需要使用当前的上下文。问题should be fixed in the next release。因此,问题中的代码在current development version中正常工作。在

相关问题 更多 >