legend matplotlib
1. 使用legend添加图例
在Matplotlib中,我们可以使用legend方法来添加图例,使得图中的每条线或者每个点对应的含义清晰显示。下面是一个简单的示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend()
plt.show()
Output:
在这个示例中,我们绘制了sin(x)和cos(x)的曲线,并使用legend()方法添加了图例,分别对应’sin(x)’和’cos(x)’。
2. 设置图例位置
在Matplotlib中,我们可以通过传递loc参数来设置图例的位置。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(loc='upper right')
plt.show()
Output:
在这个示例中,我们设置了图例的位置为右上角,通过传递’upper right’给loc参数。
3. 设置图例标题
在Matplotlib中,我们可以使用title参数来设置图例的标题。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(title='Trigonometric Functions')
plt.show()
Output:
在这个示例中,我们设置了图例的标题为’Trigonometric Functions’。
4. 修改图例字体大小和颜色
我们可以通过设置fontsize和prop参数来修改图例中文字的字体大小和颜色。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(fontsize=12, title='Trigonometric Functions', title_fontsize=14, title_color='blue')
plt.show()
在这个示例中,我们设置了图例的字体大小为12,标题的字体大小为14,标题的颜色为蓝色。
5. 设置图例边框
我们可以通过设置frame参数来控制图例的边框是否显示。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(frameon=False)
plt.show()
Output:
在这个示例中,我们设置了图例的边框不显示。
6. 自定义图例的外观
我们可以通过设置legend方法的各种参数来自定义图例的外观,例如设置边框的颜色、边框的宽度、背景色等。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(edgecolor='red', shadow=True, facecolor='lightblue')
plt.show()
Output:
在这个示例中,我们设置了图例的边框颜色为红色,有阴影效果,背景色为浅蓝色。
7. 垂直排列图例
默认情况下,图例是水平排列的,我们可以通过设置ncol参数来控制图例的列数,从而实现垂直排列。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend(ncol=1)
plt.show()
Output:
在这个示例中,我们设置了图例的列数为1,从而实现了垂直排列。
8. 图例中显示非线性标记
有时候我们希望图例中显示非线性标记,例如圆圈、方块等。可以通过设置handler_map参数来实现。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.legend_handler import HandlerTuple
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
p1, = plt.plot(x, y1, label='sin(x)')
p2, = plt.plot(x, y2, label='cos(x)', marker='s')
plt.legend(handles=[p1, p2], handler_map={p2: HandlerTuple(ndivide=None)})
plt.show()
在这个示例中,我们设置了cos(x)的标记为方块,并通过handler_map参数实现了图例中显示正方形标记。
9. 图例中添加图标
我们也可以在图例中添加图标,用来更清晰地表明每个条目的含义。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend()
plt.legend(markerscale=2)
plt.show()
Output:
在这个示例中,我们设置了标记的比例为2,使得图例中的标记更加显眼。
10. 图例中显示数学表达式
有时候我们希望在图例中显示数学表达式,例如希腊字母等。可以通过使用LaTeX表达式来实现。下面是一个示例代码:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label=r'\sin(x)')
plt.plot(x, y2, label=r'\cos(x)')
plt.legend()
plt.show()
Output:
在这个示例中,我们使用了LaTeX表达式来显示sin(x)和cos(x)。