python - 如何使用 rcParams 格式化子图背景?
问题描述
更新:虽然这里 有类似的讨论,但鉴于需要用于更改子图背景颜色的令人困惑/不直观的属性,我仍然保留我的问题。希望我用来描述这个问题的语言将进一步帮助一些困惑的编码人员。
背景: 我需要绘制一系列图表,各种格式和数据。当使用 Matplotlib 的标准样式时,这是我得到的一个示例。请注意,图形和子图的背景都是白色的。
使用 rcParams,我可以快速更改所有图表的设置,从而避免我必须单独更改每个图表的格式。它还帮助我在图表上保持一定的标准,使它们看起来很专业。
问题: 由于我所有的电子表格(请参阅此处我编写的将 Excel 电子表格转换为暗格式的代码)、浏览器等都是暗格式,我希望我的 Python 图表也采用暗格式。考虑到代码有多小,使用 rcParams 是最好的方法:
import matplotlib.pyplot as plt
rgb_color = [51,51,51] #color in RGB format
rgb_decimal_1 = [x / 255.0 for x in rgb_color] #RGB color in "decimals"
#set colors for all charts parameters
params = {'text.color':'white', 'xtick.color':'white', 'ytick.color':'white', 'figure.facecolor':rgb_decimal_1}
plt.rcParams.update(params)
使用这个简单的代码,我改变了几乎所有我需要的颜色来使我的图表变暗。但是,有一部分我想不出办法:SUBPLOTs 背景。查看上面的代码时相同图表的外观。请注意,虽然图形背景现在是深色的(字母是白色的,等等),但 SUBPLOT 背景仍然是白色的:
请注意,我知道如何使子图变暗。如果我添加下面的简单代码,在绘制每个 subplot 时,我可以使 subplot 背景变暗。查看代码后的输出:
rgb_color = [41,41,41] #color in RGB format
rgb_decimal = [x / 255.0 for x in rgb_color] #RGB color in decimal format
chart_p.set_facecolor((rgb_decimal)) #set color background of each chart subplot
然而,必须在每个子图上包含上面的代码正是我想要避免的。有关如何使用 rcParams 的文档非常好(请参阅此处)。但我找不到 SUBPLOTs 背景的设置。我期待“图形子图参数”类似于figure.subplot.facecolor但它不存在。
我错过了一些明显的东西吗?我知道有一种方法可以设置 SUBPLOTs 背景颜色,因为如果我使用样式“深色背景”[plt.style.use('dark_background')],图表 SUBPLOT 背景会变为黑色。关闭但不是我想要的颜色。
解决方案
看来我错过了一些明显的东西!感谢@busybear 在两分钟内回答我的问题!我应该使用的属性是“axes.facecolor”(可悲的是,我查看了所有带有“facecolor”的属性,并确定不是“axes.facecolor”......)。下面是现在使我的所有图表子图都具有深色背景的新代码:
import matplotlib.pyplot as plt
rgb_color = [51,51,51] #color in RGB format
rgb_decimal_1 = [x / 255.0 for x in rgb_color] #RGB color in "decimals"
rgb_color = [41,41,41] #color in RGB format
rgb_decimal_2 = [x / 255.0 for x in rgb_color] #RGB color in decimal format
#set colors for all charts parameters
params = {'text.color':'white', 'xtick.color':'white', 'ytick.color':'white', 'figure.facecolor':rgb_decimal_1, 'axes.facecolor':rgb_decimal_2}
plt.rcParams.update(params)
推荐阅读
- ios - 将单例从 Objective C 共享到 Swift
- android - LiveData 所有者定义可能导致泄漏/保留
- css - 为什么 flex-grow 在包裹的兄弟姐妹旁边不起作用?
- laravel - v7 中的 belongsToMany 返回一个空数组
- oracle - Connection to a oracle database
- javascript - Flask:JS和Python之间的通信
- python - Issues saving frames using PIL in python. Images come out distorted on my pc, but not on a friends pc
- javascript - setState is not updating or re rendering DOM or component
- javascript - How to call pre-existing WebAssembly code from Emscripten
- gnuplot - Set precision for gnuplot data labels