You need to enable JavaScript to run this app. 如何调整pec对象绘图的图例位置?能否用ggplot绘制预测误差曲线?
优惠活动
大模型
产品
解决方案
定价
更多

如何调整pec对象绘图的图例位置?能否用ggplot绘制预测误差曲线?

调整pec对象绘图的图例位置

pec包自带的plot方法的legend参数仅接受逻辑值或列表:传TRUE时图例默认放在绘图区中间,传自定义参数需要封装为列表,列表内的参数会直接传递给R基础绘图的legend()函数,可同时控制位置、字号、边框等属性。
正确示例代码:

# 图例放在右上角,字号缩小为0.7,去掉边框
plot(brier, legend = list(
  x = "topright",
  cex = 0.7,
  bty = "n"
))

如果需要更精细的位置控制,也可以用坐标指定位置,比如x = 0.6, y = 0.8,坐标取值范围为0到1,对应绘图区的左下角到右上角。


使用ggplot2绘制预测误差曲线

可以实现,只需要从pec结果对象中提取对应数据,整理为长格式即可绘图,自定义灵活度远高于自带的plot方法,示例代码如下:

# 加载需要的包
library(ggplot2)
library(tidyr)
library(dplyr)

# 提取训练集预测误差与对应时间点,如需交叉验证误差则替换AppErr为CrossValErr
brier_df <- data.frame(
  time = brier$time,
  t(do.call(cbind, brier$AppErr))
)

# 转换为长表格式适配ggplot
brier_long <- pivot_longer(brier_df, 
                           cols = -time, 
                           names_to = "模型名称", 
                           values_to = "Brier预测误差")

# 绘图
ggplot(brier_long, aes(x = time, y = `Brier预测误差`, color = `模型名称`)) +
  geom_line(linewidth = 1) +
  theme_bw() +
  labs(x = "生存时间", y = "Brier预测误差值") +
  theme(
    legend.position = "top", # 可自由调整图例位置,如"bottom"、"none"或者坐标c(0.8,0.8)
    legend.title = element_blank()
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 05:54:04