You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将R绘图中直方图方块与拟合曲线线条合并为单个图例

解决合并直方图与拟合曲线图例的问题

完全可以把两个独立图例合并成一个!你只需要将所有图例元素整合到同一个legend()函数调用中,就能生成包含直方图方块和两条拟合曲线线条的单个图例框。

修改后的完整代码

truehist( data=DismissalRateData$DismissalRate, breaks=seq(.6, 1, by=.025), col="lightgreen", prob=TRUE, ylab="Density", xlab="Claim Dismissal Rate", main="Histogram of Historical Claim Dismissal Rates \n(With Superimposed Beta Curve Fits)", xaxt='n', yaxt='n', ylim=c(0,14) )
curve( dbeta(x, FittedAlphaParameter, FittedBetaParameter), add=TRUE, col="red", lwd=3 )
curve( dbeta(x, 100.2753, 11.5809), add=TRUE, col="blue", lwd=3 )
axis( side=1, at=seq(.6, 1, by=.025), labels=formattable::percent(seq(.6, 1, by=.025),digits=0) )

# 合并后的单个图例
legend(x="topleft", 
       legend=c("Actual Data", 
                "Beta fitted with all data 2006-2017", 
                "Beta fitted excluding 2006-2008"),
       fill=c("lightgreen", NA, NA),  # 仅给直方图条目设置填充色
       col=c("black", "red", "blue"), # 对应每个条目的颜色(直方图边框+曲线颜色)
       lty=c(0, 1, 1),                # 直方图条目不需要线条,曲线用实线
       lwd=c(1, 3, 3),                # 曲线保持原粗细,直方图边框设为默认
       bty="o"                        # 显示图例边框,可选
)

关键参数说明

  • fill:只给第一个图例条目(实际数据)指定填充色,后面两个曲线条目用NA跳过,避免出现不必要的填充方块。
  • col:分别对应直方图的边框颜色、两条拟合曲线的颜色。
  • lty:设置为c(0,1,1),其中0表示不显示线条(因为直方图用填充方块代表),1表示实线(对应曲线)。
  • lwd:匹配曲线的原粗细3,直方图边框用默认的1即可。

这样修改后,所有图例元素就会被整合到同一个框里,每个条目都能正确对应对应的图形元素啦。

内容的提问来源于stack exchange,提问作者user2722188

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:48:02