Matplotlib - 背景颜色



什么是 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
# Generating data
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Changing Figure Background Color
plt.figure(facecolor='lightblue')  # Set figure background color
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
# Generating data
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Changing plot area Background Color
plt.plot(x, y)
plt.gca().set_facecolor('lightgreen')  # Set plot area background color
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
# Generating data
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Plot using different stylesheets
stylesheets = ['ggplot', 'dark_background', 'seaborn-poster']
for style in stylesheets:
   plt.style.use(style)  # Apply the selected stylesheet
   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
# Generating data
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Customizing with color strings
plt.figure(facecolor='green')  # Set figure background color using color name
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
# Generating data
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Customizing with color strings
plt.figure(facecolor='lightblue')  # Set figure background color using color name
plt.plot(x, y, color='orange')  # Set line color using a color name
plt.scatter(x, y, color='#00FF00')  # Set marker color using hexadecimal color string
plt.xlabel('X-axis', color='red')  # Set x-axis label color using a color name
plt.ylabel('Y-axis', color=(0.5, 0.1, 0.7))  # Set y-axis label color using RGB tuple
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("Default face color is: ", ax.get_facecolor())
plt.subplot(121)
plt.plot(np.random.rand(10), np.random.rand(10))
plt.title("With default face color")
plt.subplot(122)
ax = plt.gca()
ax.set_facecolor("orange")
plt.plot(np.random.rand(10), np.random.rand(10))
plt.title("With customize 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
广告