我在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修改的迹象:
奇怪的是,我在ubuntu16.04和windows10上安装了Eclipse作为双引导,而xkcd函数在这两个系统上都失败了。我本以为Python和Eclipse的安装在这两个系统之间会有很大的不同,但现在我们看到了。
有什么想法,有什么问题吗?在
编辑:正如Hans指出的,这可能是matplotlib 2.2.2特有的问题
更奇怪的是,如果我使用with :
运行相同的脚本,而不做任何其他更改,比如
删除with :
语句将返回第一个图。在Linux和Windows上同样的行为,所以看起来是matplotlib版本问题。在
编辑:现在我们知道这是一个暂时的、有限的错误,回到主要问题-How to get rid of the white edgecolor in xkcd
这是matplotlib2.2中纯粹存在的一个bug。问题是垃圾收集器太快了。见this comment and below。在
这意味着你需要使用当前的上下文。问题should be fixed in the next release。因此,问题中的代码在current development version中正常工作。在
相关问题 更多 >
编程相关推荐