我正在尝试使用matplotlib
xkcd
包制作情节,同时拥有黑色背景。但是,xkcd似乎在文本和行周围添加了一种白色轮廓线。在白色背景上你看不到这个白色框架,但在黑色背景上它真的很烦人。
有没有人知道如何解决这个问题?也许可以选择如何更改白色轮廓线以获得背景颜色?
最小例子:
import numpy as np
import matplotlib.pyplot as plt
plt.style.use(['dark_background'])
plt.xkcd()
plt.rcParams['figure.facecolor'] = 'black'
x = np.linspace(-5, 5)
plt.figure()
plt.plot(x, x**2)
plt.text(0, 10, "Text", color='r', fontsize=20)
plt.xlabel("$x$" )
plt.ylabel("$f(x)$")
plt.show();
:
编辑:
我在我的jupyter笔记本中使用Python 3.5.4
包:
matplotlib==2.2.2
,后端=' TkAgg' jupyter==1.0.0
notebook==5.5.0
注意,当以脚本形式运行上述代码时,我根本不会得到一个xkcd图。只有jupyter笔记本或命令行我才能得到描述的行为。
答案 0 :(得分:1)
输入plt.xkcd()
命令后,尝试执行
from matplotlib import patheffects
plt.rcParams['path.effects'] = [patheffects.withStroke(linewidth=0)]
这为我解决了问题!
编辑:我运行了您给出的建议更改的代码。
输入:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import patheffects
plt.style.use(['dark_background'])
plt.xkcd()
plt.rcParams['path.effects'] = [patheffects.withStroke(linewidth=0)]
plt.rcParams['figure.facecolor'] = 'black'
x = np.linspace(-5, 5)
plt.figure()
plt.plot(x, x**2)
plt.text(0, 10, "Text", color='r', fontsize=20)
plt.xlabel("$x$" )
plt.ylabel("$f(x)$")
plt.show();
输出(对不起,我必须链接到输出图像,因为不允许Stack上的新手将图像嵌入其答案中):
You might want to change your axis colors to white, though, if you want the background to be black