操纵 matplotlib 图例中的线条样式

car*_*arl 3 python matplotlib

我想在我的图中包含一个图例,即使相应的曲线使用 linstyle '--',它也会将所有线显示为实线。有没有

plt.plot(x, y, linestyle='--')
plt.legend(loc=0) 
plt.show()
Run Code Online (Sandbox Code Playgroud)

因此,上图的图例应显示一条实线。

Tho*_*ühn 6

您可以明确告诉 ax.legend显示什么和不显示什么。使用单独的Line2D对象(请参见此处),即使绘制的线是虚线,也可以使图例中的线成为实线。这是一个工作示例:

from matplotlib import pyplot as plt
from matplotlib.lines import Line2D
import numpy as np


fig, ax = plt.subplots()
x = np.linspace(0,2*np.pi,100)
y = np.sin(x)
ax.plot(x,y,'r--')
line = Line2D([0,1],[0,1],linestyle='-', color='r')

ax.legend([line],['solid line'])

plt.show()
Run Code Online (Sandbox Code Playgroud)

结果如下:

上述代码的结果