Matplotlib 如何手动添加带有颜色框的图例

Matplotlib 如何手动添加带有颜色框的图例

Matplotlib是一个流行的Python数据可视化库,以其灵活性和高质量的可视化而闻名。通过本教程,您将学习如何在Matplotlib图表中创建带有颜色框的图例,使您的可视化更具信息性和视觉吸引力。

在深入代码之前,了解图例的不同元素很重要。图例是一个关键,用不同的颜色、标记或线条标记我们图中的元素。通过添加图例,我们可以理解所呈现的数据,并使观众更容易解读我们的可视化。在下一节中,我们将看一下在Matplotlib图中创建带有颜色框的图例的语法。

语法

为了在Python的Matplotlib图中手动添加带有颜色框的图例,我们可以使用以下语法-

# Import libraries
import matplotlib.patches as mpatches

# Creating legend with color box
color_patch = mpatches.Patch(color='red', label='legend')
plt.legend(handles=[color_patch])

在上面的语法中,使用颜色参数设置为’red’的 mpatches.Patch 函数创建了一个颜色框。使用 plt.legend 函数将结果为蓝色的颜色框添加到图例中,其中handles参数设置为 [color_patch] 。尽管颜色框本身在图中是不可见的,但它会作为一个带有颜色矩形的标签文本旁边出现在图例中。颜色框的大小和形状可以使用 mpatches.Patch 函数的其他参数进行调整,例如 linewidth, edgecolor和facecolor 。下面的示例很好地解释了它。

示例

在这个示例中,第一步是导入必要的库,即 matplotlib.patches和matplotlib.pyplot 。然后,我们使用 plt.plot() 函数创建一个简单的线图,并使用x坐标和y坐标的列表作为参数,以及线的颜色。

接下来,我们使用 plt.title() 函数设置图的标题。这段代码的重点是创建一个带有颜色框的图例。我们通过使用 mpatches.Patch() 函数创建一个补丁来实现这一点,该函数接受多个参数,如补丁的颜色、要在图例中显示的标签以及诸如线宽和透明度的其他参数。然后,我们创建一个红色的color_box补丁,并赋予它一个标签”Example Legend”。我们还将 linewidth 设置为12和 alpha 设置为0.5,以调整补丁的大小和透明度。

最后,我们使用 plt.legend() 函数将补丁添加到图例中,传入handles参数和要包含在图例中的补丁列表。我们还将图例的位置设置为”upper right”角,并使用 framealpha 参数和 frameon 设置为True来调整边框的透明度。

总的来说,通过调整mpatches.Patch()函数中的参数,您可以自定义颜色框的大小、形状和颜色,以满足您的可视化需求。最后使用 plt.show() 函数显示图。

import matplotlib.patches as mpatches
import matplotlib.pyplot as plt

# Creating plot
plt.plot([1, 2, 3, 4], color='blue')
plt.title('Example 1')

# Creating legend with color box
color_box = mpatches.Patch(color='red', label='Example Legend', linewidth=12, alpha=0.5)
plt.legend(handles=[color_box], loc='upper right', framealpha=0.5, frameon=True)

# Show plot
plt.show()

输出

Matplotlib 如何手动添加带有颜色框的图例

示例

该示例导入所需的库,包括Plotly Express,以使用 px.data.tips() 函数导入小费数据集,使用Matplotlib的pyplot和patches构建图表和图例。

使用Matplotlib的 ax.scatter() 函数创建散点图。x轴代表总账单金额,y轴代表小费金额。’c’参数用于根据小费数据集的’sex’列指定标记的颜色。使用 .map() 函数将字符串值”Female”和”Male”映射为相应的颜色值”red”和”blue”。

在示例中创建图例时,使用 mpatches.Patch() 函数手动创建特定颜色和标签的颜色框。然后使用 plt.legend() 函数将这些颜色框添加到图表中,同时指定图表上的位置和颜色框的句柄。还可以使用 framealpha 参数调整图例的透明度和是否显示框架。

最后,使用 plt.title()plt.xlabel()plt.ylabel() 为图表添加标题和轴标签。然后使用 plt.show() 显示图表。

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import plotly.express as px

# Load tips dataset from plotly.express
tips = px.data.tips()
# Create scatter plot
fig, ax = plt.subplots()
ax.scatter(tips['total_bill'], tips['tip'], c=tips['sex'].map({'Female': 'red', 'Male': 'blue'}))

# Create a legend with a color box
female_patch = mpatches.Patch(color='red', label='Female')
male_patch = mpatches.Patch(color='blue', label='Male')
plt.legend(handles=[female_patch, male_patch], loc='upper left', framealpha=0.5, frameon=True)

# Set plot title and axis labels
plt.title('Total Bill vs Tip by Gender')
plt.xlabel('Total Bill')
plt.ylabel('Tip')

# Show plot
plt.show()

输出

Matplotlib 如何手动添加带有颜色框的图例

结论

总之,在Matplotlib图中添加一个带有颜色框的图例可以是一种有用的方式来直观地表示数据并改善整个图的可读性。我们可以使用mpatches.Patch函数来修改颜色框以满足我们的需求。这包括改变框的大小、形状和颜色。可以使用plt.legend函数将颜色框图例添加到图中,并根据位置和外观进行自定义。学习如何处理简单或复杂的数据可以受益于这种方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程