matplotlib我正在尝试使用'sxkcd包在黑色背景下绘制一个图。然而,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();
Run Code Online (Sandbox Code Playgroud)
:
编辑:我Python 3.5.4在我的 jupyter 笔记本中使用包:
matplotlib==2.2.2,后端='TkAgg'jupyter==1.0.0notebook==5.5.0请注意,当将上述代码作为脚本运行时,我根本没有得到 xkcd 图。仅从 jupyter 笔记本或命令行我才能得到所描述的行为。
发出plt.xkcd()命令后,尝试执行
from matplotlib import patheffects
plt.rcParams['path.effects'] = [patheffects.withStroke(linewidth=0)]
Run Code Online (Sandbox Code Playgroud)
这为我解决了问题!
编辑:我按照建议的更改运行了您提供的代码。
输入:
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();
Run Code Online (Sandbox Code Playgroud)
输出(抱歉,我必须链接到输出图像,因为 Stack 上的新手不允许在其答案中嵌入图像):
| 归档时间: |
|
| 查看次数: |
818 次 |
| 最近记录: |