启用Matplotlib图形的白色边框/禁用透明边框

16

我正在使用暗色主题运行ipython笔记本。当我在上面构建图表时,图表是白色的,但框架是透明的(因此是暗色的),遮盖了也是暗色的刻度线。有没有办法使框架不透明/变为白色?

The ticks are barely visible due to the black background.

{{刻度线由于黑色背景几乎不可见。}}
{{我该如何解决这个问题?谢谢!}}
{{编辑:这不是关于更改轴、刻度线/标签颜色的问题,我想要添加一个白色背景框架,而不是改变刻度线的颜色——如果我只是改变刻度线的颜色,那会很丑,因为图形是白色的。}}

@Yuca 我不这么认为,它并没有改变轴、刻度/标签的颜色,我在考虑添加一个白色背景框架,这样我就不必改变它们 - 如果我只改变刻度的颜色,那会很丑,因为图形是白色的。 - Rocky Li
可能是 https://dev59.com/n2Yq5IYBdhLWcg3w7E0F 的重复问题。 - Yuca
抱歉链接错误,这应该是正确的链接 :) (您需要修改图形的补丁属性) - Yuca
1
@Yuca 谢谢,问题解决了! - Rocky Li
2个回答

17
在使用%matplotlib inline后端(通常是默认值)显示的Jupyter中,所展示的图形是通过将其保存为png格式并进行显示来创建的。 savefig有一个参数facecolor,它设置了图形背景的颜色。这可以设置为白色,例如:fig.savefig("name.png", facecolor="w")
可以在Jupyter配置中调整保存选项。要实现白色背景,可以设置
%config InlineBackend.print_figure_kwargs={'facecolor' : "w"}

在显示图表之前的单元格中。

如果要用于每个笔记本,也可以将其添加到IPython配置文件中。

c = get_config()
c.InlineBackend.print_figure_kwargs={'facecolor' : "w"}

谢谢!我已经尝试设置 matplotlibrc,但没有起作用。结果证明这是一个IPython的问题! - Syrtis Major

-1
在编程中,如果想要一个透明的框架,只需在加载matplotlib后添加以下行:
import matplotlib.pyplot as plt
plt.rcParams['axes.facecolor'] = 'none'

这对我很有帮助!


2
问题是关于如何使框架“不透明”。 - sappjw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接