首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R绘制带置信区间的图

R绘制带置信区间的图
EN

Stack Overflow用户
提问于 2022-05-22 14:04:47
回答 1查看 45关注 0票数 0

我有一个像这样的数据框-

代码语言:javascript
复制
df = data.frame(recall=c(0.55,0.62,0.43,0.61,0.19,0.14,0,0.19,0.33,0.33,0,0.33),
                type= c("Phone numbers","Phone numbers","Phone numbers","Phone numbers","Emails","Emails","Emails","Emails","URLs","URLs","URLs","URLs"),
                model=c("Cognition","TS-SAR","TS-ABINet","TS-RobustScanner",
                        "Cognition","TS-SAR","TS-ABINet","TS-RobustScanner",
                        "Cognition","TS-SAR","TS-ABINet","TS-RobustScanner"),
                lb=c(0.47,0.55,0.35,0.53,
                     0.07,0.04,0,0.07,
                     0.14,0.14,0,0.14),
                ub=c(0.63,0.7,0.51,0.69,
                     0.30,0.24,0,0.3,
                     0.52,0.52,0,0.52))

它由图像ML模型中的4‘文本检测结果组成。recall列根据检测到的文本的type (电话号码、电子邮件或URL)为每个模型提供召回度量值。ublb列具有95%置信区间召回的下限值。

目标

我想用R把这个画成一个图。

下面是我使用ggplot2的尝试

代码语言:javascript
复制
pd <- position_dodge(width=0.2)

ggplot(df, aes(model,recall, color=type)) +
  geom_point(aes(shape=type),size=4, position=pd) +
  scale_color_manual(name="Type",values=c("coral","steelblue")) +
  scale_shape_manual(name="Type",values=c(17,19)) +
  theme_bw() +
  scale_x_continuous("Model", breaks=1:length(model), labels=model) +
  scale_y_continuous("Recall values") +
  geom_errorbar(aes(ymin=lb,ymax=ub),width=0.1,position=pd)

然而,这给了我一条错误消息。

check_breaks_labels中的错误(中断,标签):找不到对象‘模型’

知道为什么这会是个错误吗?此外,如果有人有建议的话,我也愿意使用新的方法来绘制这些数据。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-22 14:24:10

您的代码需要一些调整。

首先,ggplotaes内部只使用非标准的计算,因此在scale_x_continuous中使用model会导致“未找到的model”错误。

其次,x轴不是连续的。是离散的。如果根本不指定x轴比例,那么断线/标签将是正确的。您只需将行取出来,并信任默认值。

第三,type变量有三个级别,因此在颜色和形状尺度上需要三个值。

把这些加在一起,我们有:

代码语言:javascript
复制
position <- position_dodge(width = 0.2)

ggplot(df, aes(model, recall, color = type)) +
  geom_point(aes(shape = type), size = 4, position = pd) +
  geom_errorbar(aes(ymin = lb, ymax = ub), width = 0.1, position = pd) +
  scale_color_manual("Type", values = c("coral", "steelblue", "green4")) +
  scale_shape_manual("Type", values = c(17, 19, 18)) +
  scale_y_continuous("Recall values") +
  theme_bw(base_size = 16) 

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72338300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档