Skip to main content
 首页 » 编程设计

python之将文本添加到python中的图例

2025年05月04日13wuhuacong

我正在尝试向图例添加一些文本。它是关于框中的文本。另一种解决方案是文本框保持在图例下方,并且在您放大图表时不会移动。

plt.scatter(stageheight,discharge,color='b',label='measured data') 
plt.plot(stageheight_hecras,discharge_hecras,'y^',label='modeled with HEC-RAS') 
plt.plot(stageheight_masked,discharge_predicted,'r-',label='regression line measured data') 
plt.plot(stageheight_hecras,discharge_predicted_hecras,'g-',label='regression line HEC-RAS') 
plt.plot(stageheight_masked,upper,'r--',label='15% error measured data') 
plt.plot(stageheight_masked,lower,'r--') 
plt.plot(stageheight_hecras,upper_hecras,'g--',label='30% error HEC-RAS') 
plt.plot(stageheight_hecras,lower_hecras,'g--') 
plt.fill_between(stageheight_masked,upper,lower,facecolor='red',edgecolor='red',alpha=0.5,label='test') 
plt.fill_between(stageheight_hecras,upper_hecras,lower_hecras,facecolor='green',alpha=0.5) 
plt.axhline(y=0.6,xmin=0,xmax=1,color='black',linewidth = 4.0,label='measuring range') 
plt.text(0.02,0.7,'measured rating curve $Q = 1.37H^2 + 0.34H - 0.007$\nmodeled ratign curve $Q = 2.71H^2 - 2.20H + 0.98$',bbox=dict(facecolor='none',edgecolor='black',boxstyle='square')) 
plt.title('Rating curve Catsop') 
plt.ylabel('discharge') 
plt.ylim(0,2.5) 
plt.xlim(0,1.2) 
plt.xlabel('stageheight[m]') 
plt.legend(loc='upper left', title='Legend') 
plt.grid(True) 
plt.show() 

这是我现在的图表:

请您参考如下方法:

与其绘制假矩形,不如使用 Patch ,它没有出现在图形或坐标轴上:

import matplotlib.patches as mpatches 
 
extraString = 'measured rating curve $Q = 1.37H^2 + 0.34H - 0.007$\nmodeled rating curve $Q = 2.71H^2 - 2.20H + 0.98$' 
handles, labels = plt.get_legend_handles_labels() 
handles.append(mpatches.Patch(color='none', label=extraString)) 
plt.legend(handles=handles) 

此方法具有奖励效果,即您首先获得图例中已有的任何内容,因此您不必手动显式构建它。