繁体   English   中英

R 绘制具有置信区间的图表

[英]R plotting a graph with confidence intervals

我有一个 dataframe,看起来像这样 -

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))

它由 4 个“图像中的文本检测”ML 模型的结果组成。 recall列具有每个 model 的召回指标值,具体取决于检测到的文本type (电话号码、email 或 URL)。 ublb列具有 95% 置信区间召回率的下限值和界限值。

客观的

我想使用 R 在一张图中显示 plot。

这是我尝试使用ggplot2

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(breaks, labels) 错误:object 未找到“模型”

任何想法为什么这可能是一个错误? 如果有人有建议,我也愿意接受绘制这些数据的新方法。 谢谢!

您的代码需要进行一些调整。

首先, ggplot仅在aes内部使用非标准评估,因此在model内部使用scale_x_continuous导致“ model ”错误。

其次,x 轴连续。 它是离散的。 如果您根本不指定 x 轴刻度,则中断/标签将是正确的。 你可以把线去掉并相信默认值。

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

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

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) 

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM