matplotlib通过一个函数设置图例和打印线特性
我注意到,通过在设置打印线属性之前调用plt.legend(),带有图例框的线没有根据设置进行相应调整。 以下是一个示例打印和一个用于设置图例和打印线特性的函数:matplotlib通过一个函数设置图例和打印线特性,matplotlib,Matplotlib,我注意到,通过在设置打印线属性之前调用plt.legend(),带有图例框的线没有根据设置进行相应调整。 以下是一个示例打印和一个用于设置图例和打印线特性的函数: import matplotlib.pyplot as plt import numpy as np fig = plt.figure() ax = fig.add_subplot(111) ax.plot(range(10), '-x', label = 'legend text') ax.plot(2 * range(10)) l
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(range(10), '-x', label = 'legend text')
ax.plot(2 * range(10))
leg = plt.legend(title = 'legend here')
def plotprop_adj(ax, leg, fs = 16, lw = 2, ms = 10)
ltext = leg.get_texts()
for item in ltext:
item.set_fontsize(fs)
for ln in ax.lines:
ln.set_linewidth(lw)
ln.set_markersize(ms)
plotprop_adj(ax, leg) # leaves lines in legend box with
#+ different properties than the corresponding plots
因此,我尝试在图例中手动设置线条特性,如下所示(添加到plotprop_adj(…):
因此,带有图例框的线条具有正确的厚度,但长度接近一半,标记大小没有改变。遗憾的是,这是matplotlib中确认的错误:
def plotprop_adj(ax, leg, fs = 16, lw = 2, ms = 10)
[...]
leg_ln = leg.get_lines()
for ln in leg_ln:
ln.set_linewidth(lw)
ln.set_markersize(ms)