我试图遵循指南并生成:.
我的数据在一个名为 SIGSW.test 的数据框中,我的响应变量 (SI) 是二进制的。我有一个 glm 用于生成在数据框中保存为 pr.bms 的预测。我想以图形方式表示各种阈值的真/假阳性/阴性。pr.bms.type 代表 TF、TN、FP 或 FN。
但是,当我尝试以下代码时:
ggplot(data=SIGSW.test, aes(x=SI, y=pr.bms)) +
geom_violin(fill=rgb(1,1,1,alpha=0.6), color=NA) +
geom_jitter(aes(color=SIGSW.test$pr.bms.type), size=5, alpha=0.6) +
geom_hline(yintercept=threshold, color="red", alpha=0.6) +
scale_color_discrete(name = "type") +
labs(title=sprintf("Threshold at %.2f", threshold))
R 生成.
它给了我两列数据点,表示 X 轴上的观察结果和 Y 轴上的预测概率(我想要的),但似乎这两个小提琴图合并为一个。由于我无法用他自己的代码和数据复制作者的情节,我怀疑代码中存在缺陷。我对ggplot不是很好,所以我无法弄清楚到底出了什么问题-在我看来,它应该创建两个小提琴图,每个结果一个,因为小提琴层应该使用美学属性在 ggplot 函数中定义。谁能解释出了什么问题以及如何解决?我在这里看到了许多线程解释如何叠加两个小提琴图,但我不知道如何制作由离散变量定义的两个小提琴图。我'
作为参考,这是我的一些数据的示例:
SI pr.bms pr.aic pr.bic pr.bms.type
19869 0 0.029985210 0.009071122 0.014855376 TN
36670 0 0.013641325 0.018143617 0.019764735 TN
9586 0 0.004428973 0.004363135 0.004356827 TN
41570 1 0.709464654 0.693148738 0.742891240 TP
32356 0 0.347295868 0.274694216 0.284724446 TN
14922 0 0.019798409 0.014157925 0.011422388 TN
52048 0 0.317284825 0.363881394 0.305525690 TN
43269 0 0.972736555 0.985057882 0.909592318 FP
45043 0 0.962467774 0.932087650 0.928091617 FP
4608 0 0.006653427 0.013383884 0.014138802 TN
谢谢