Matplotlib绘制双回归线时出现重复图例,求原因解析
图例重复的常见诱因及解决办法
核心诱因:数据维度不符
你代码里的x2或y_hat大概率是二维数组(多列结构)。Matplotlib的plot函数如果接收二维数组,会自动把每一列当作一条独立曲线绘制,且每条曲线都会带上你设置的label='OLS regression line',最终图例就会重复显示。验证方式
在绘图代码前添加两行打印数据形状的代码,确认维度:print("x2的形状:", x2.shape) print("y_hat的形状:", y_hat.shape)如果输出结果里第二个数值大于1(比如
(100,2)),就可以确定是维度问题导致的重复图例。解决办法
将二维数据转为一维后再绘图,可使用ravel()或flatten()方法:ax.plot(x2.ravel(), y_hat.ravel(), '-g', label='OLS regression line')如果你明确只需要数组中的某一列,也可以直接索引取列,比如
x2[:,0]、y_hat[:,0]。
另外,重复调用绘图代码也可能导致这个问题,但从你给出的代码来看只调用了一次OLS线的绘图命令,这个概率极低。
内容的提问来源于stack exchange,提问作者carlMAXs
相关产品推荐
相关产品推荐

