Matplotlib 怎么设置背景颜色?

文章导读
Previous Quiz Next Matplotlib 中的背景颜色是什么? Matplotlib 提供了丰富的选项来控制背景颜色,使用户能够自定义图表和图形的外观。背景颜色在提升可视化的美观性和可读性方面起着关键作用,为显示的数据设定基调和氛围。
📋 目录
  1. Matplotlib 中的背景颜色是什么?
  2. 图形和绘图区域背景颜色
  3. 背景颜色的样式表
  4. 背景颜色的的重要性
A A

Matplotlib - 背景颜色



Previous
Quiz
Next

Matplotlib 中的背景颜色是什么?

Matplotlib 提供了丰富的选项来控制背景颜色,使用户能够自定义图表和图形的外观。背景颜色在提升可视化的美观性和可读性方面起着关键作用,为显示的数据设定基调和氛围。

以下是 Matplotlib 库背景颜色功能的不同特性。让我们详细查看每一个。

图形和绘图区域背景颜色

图形的背景颜色涵盖了渲染图表的所有区域。默认情况下通常为白色,但可以使用 plt.figure(facecolor='color_name')plt.gcf().set_facecolor('color_name') 来更改。这会影响图表周围的区域。

另一方面,绘图区域背景颜色指的是绘图轴内的区域。它可以通过 plt.gca().set_facecolor('color_name') 来更改,为实际绘图区域提供不同的背景颜色。

更改图形背景颜色

此示例演示如何使用 Matplotlib 库为图形设置背景颜色。

示例 - 更新图形背景颜色

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 更改图形背景颜色
plt.figure(facecolor='lightblue')  # 设置图形背景颜色
plt.plot(x, y)
plt.title('Figure Background Color Example')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
输出
Figure Plot

更改绘图区域背景颜色

在此示例中,我们使用 plt.gca().set_facecolor('lightgreen') 来专门为绘图区域设置背景颜色。

示例 - 更新区域背景颜色

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 更改绘图区域背景颜色
plt.plot(x, y)
plt.gca().set_facecolor('lightgreen')  # 设置绘图区域背景颜色
plt.title('Plot Area Background Color Example')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
输出
Plot Areas

背景颜色的样式表

Matplotlib 提供了样式表,这些样式表包含预定义的配置,包括背景颜色。像 'dark_background', 'ggplot''seaborn' 这样的样式表具有独特的配色方案,会影响图表、图形以及其他元素的背景颜色。

样式表不仅修改背景颜色,还包括各种其他样式元素,如线条颜色、文本大小和网格样式。通过实验不同的样式表,我们可以快速探索和可视化不同样式如何影响图表的外观。

示例 - 使用样式表

以下是一个示例,展示了如何在 Matplotlib 中使用样式表来修改

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 使用不同的样式表绘图
stylesheets = ['ggplot', 'dark_background', 'seaborn-poster']
for style in stylesheets:
   plt.style.use(style)  # 应用选定的样式表
   plt.plot(x, y)
   plt.title(f'Plot with {style.capitalize()} Stylesheet')
   plt.xlabel('X-axis')
   plt.ylabel('Y-axis')
   plt.show()

输出

Style Sheets Style Sheets

Style Sheets

对可视化的影响

背景颜色会影响数据的视觉感知。深色背景可能突出明亮或对比鲜明的数 据,而浅色背景通常提供干净且传统的外观,适合大多数场景。应仔细选择背景颜色,以确保观众的可读性和可访问性。

自定义和颜色表示

我们可以使用各种表示方式来自定义背景颜色,例如颜色名称 ('blue', 'red')、十六进制字符串 ('#RRGGBB')、RGB 元组 ((0.1, 0.2, 0.5)) 或带有 alpha 透明度的 RGBA 元组 ((0.1, 0.2, 0.5, 0.3))。

这些颜色字符串表示方式为图表中的各种元素指定颜色提供了灵活性,允许我们精确控制可视化的视觉外观。我们可以使用命名颜色、十六进制字符串、RGB 元组或 RGBA 值来自定义 Matplotlib 图表中不同元素的颜色。

使用颜色字符串自定义

我们可以使用颜色名称或十六进制字符串直接设置背景颜色。

示例 - 使用颜色字符串自定义

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 使用颜色字符串自定义
plt.figure(facecolor='green')  # 使用颜色名称设置图形背景颜色
plt.plot(x, y)
plt.title('Customizing with Color Strings')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
输出
Customize

自定义选项

我们还可以使用颜色字符串或 RGB 值自定义其他元素,例如线条颜色、标记颜色,甚至修改图表中特定文本元素的颜色。

示例

import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 使用颜色字符串自定义
plt.figure(facecolor='lightblue')  # 使用颜色名称设置图形背景颜色
plt.plot(x, y, color='orange')  # 使用颜色名称设置线条颜色
plt.scatter(x, y, color='#00FF00')  # 使用十六进制颜色字符串设置标记颜色
plt.xlabel('X-axis', color='red')  # 使用颜色名称设置 x 轴标签颜色
plt.ylabel('Y-axis', color=(0.5, 0.1, 0.7))  # 使用 RGB 元组设置 y 轴标签颜色
plt.show()
输出
Customize Options

背景颜色的的重要性

背景颜色的选择显著影响可视化的美观性和解释。它会影响可读性、视觉对比度以及显示数据的整体印象。上下文、受众和可视化的具体目的应指导背景颜色的选择。

使用场景

对比度和可见性 − 数据元素与背景之间的对比度可以调整,以突出或弱化某些信息。

主题和品牌 − 背景颜色可以通过确保多个可视化的一致性,与品牌或主题考虑相匹配。

可访问性 − 选择合适的背景颜色对于确保可访问性至关重要,特别是对于视力障碍人士。

Matplotlib 提供了多种选项来控制图表和图形中的背景颜色。这些选择通过使其成为创建有效且引人入胜的图表的基本方面,对可视化的美观性、可读性和解释产生了重大影响。适当选择的背景颜色提升了数据表示的整体吸引力和沟通效果。

更改默认背景颜色

在这个示例中,我们将更改 Matplotlib 图表的默认背景颜色。

示例 - 更改背景颜色

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
ax = plt.gca()
print("默认 face color 是: ", ax.get_facecolor())
plt.subplot(121)
plt.plot(np.random.rand(10), np.random.rand(10))
plt.title("使用默认 face color")
plt.subplot(122)
ax = plt.gca()
ax.set_facecolor("orange")
plt.plot(np.random.rand(10), np.random.rand(10))
plt.title("使用自定义 face color")
plt.show()
输出
default_background

更改坐标轴背景颜色

在这个示例中,我们使用 set_facecolor() 方法更改坐标轴背景颜色。

示例 - 更改坐标轴背景颜色

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
ax = plt.gca()
ax.set_facecolor("orange")
x = np.linspace(-2, 2, 10)
y = np.exp(-x)
plt.plot(x, y, color='red')
plt.show()
输出
axes_background

设置 matplotlib 表格中列的背景颜色

这是设置 matplotlib 表格中列背景颜色的参考示例。

示例 - 更改列的背景颜色

import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
columns = ('name', 'age', 'marks', 'salary')
cell_text = [["John", "23", "98", "234"], ["James", "24", "90", "239"]]
colors = [["red", "yellow", "blue", "green"], ["blue", "green", "yellow", "red"]]
fig, ax = plt.subplots()
the_table = ax.table(cellText=cell_text, cellColours=colors, colLabels=columns, loc='center')
ax.axis('off')
plt.show()
输出
table