Matplotlib 图例中使用两个独特的标记符号
在本文中,我们将介绍如何在Matplotlib中使用两个独特的标记符号,并在同一图例中标记它们。
阅读更多:Matplotlib 教程
Matplotlib中使用不同的标记符号
Matplotlib是一个非常流行的Python绘图库,它可以创建各种类型的图形,包括线图,散点图等。在绘制散点图时,我们通常想要使用不同的标记符号来标记不同的数据点。Matplotlib支持多种标记符号,如圆圈,正方形,三角形等。
下面是一个例子,用不同的颜色和标记符号绘制了两条直线:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
fig, ax = plt.subplots()
ax.plot(x, y1, 'o', color='blue', label='Sin')
ax.plot(x, y2, '*', color='red', label='Cos')
ax.legend(loc='lower left')
上面的代码创建了一个包含两条曲线的图形,每条曲线都使用不同的标记符号和颜色。我们使用plot()函数指定数据的x和y坐标,同时指定标记符号和颜色,并使用label参数为每条线增加标签。最后,我们使用legend()函数在图例中显示这些标签。
在默认情况下,legend()函数将使用与每个线条颜色相匹配的标记符号。但是,如果我们想要在同一条曲线上使用多个标记符号,该怎么办呢?
在同一条线上使用多个标记符号
为了在同一条曲线上使用多个标记符号,我们需要制定一个自定义的标记符号列表。我们可以使用Line2D和PathCollection来创建自定义标记符号,然后将它们添加到标记符号列表中。
下面是一个例子,我们将在同一条曲线上使用圆圈和正方形:
import matplotlib.lines as mlines
from matplotlib.patches import Circle, Rectangle
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Create custom markers
circle = Circle((0, 0), radius=0.15, facecolor='blue', edgecolor='black')
square = Rectangle((0, 0), width=0.2, height=0.2, facecolor='green', edgecolor='black')
fig, ax = plt.subplots()
# Plot sine wave with custom markers
line, = ax.plot(x, y, 'o', markersize=10, color='red', linewidth=2)
# Add custom markers to legend
circ_marker = mlines.Line2D([], [], color='blue', marker=circle, linestyle='None', markersize=10)
sq_marker = mlines.Line2D([], [], color='green', marker=square, linestyle='None', markersize=10)
ax.legend([line, circ_marker, sq_marker], ['Sine', 'Circle', 'Square'], loc='lower left')
在代码中,我们首先创建两个自定义标记符号,一个圆圈和一个正方形。每个自定义标记符号都是一个独立的对象,它们使用Circle和Rectangle类创建。
接下来,我们使用Line2D类创建包含自定义标记符号的行,并在标记符号列表中添加它们。最后,在解释图例时,我们使用legend()函数显示行和标记符号,并使用loc参数指定它们的位置。
总结
在本文中,我们说明了如何在Matplotlib中使用两个独特的标记符号,并在同一图例中标记它们。我们首先显示了如何使用默认标记符号和颜色来创建一个包含两条曲线的图形。然后,我们展示了如何创建两个自定义标记符号并在同一条曲线上使用它们。最后,我们使用自定义标记符号列表在图例中显示行和标记符号。
通过本文,我们了解了如何在Matplotlib中使用不同的标记符号和颜色来区分散点图中的不同数据点。我们还学习了如何在同一条曲线上使用多个标记符号,并将它们添加到图例中,以便更好地解释图形。
Matplotlib有很多强大的功能,可以创建灵活和美观的可视化。您可以在Matplotlib文档中找到更多有关Matplotlib的信息和教程。
极客教程