ggplot轴:绘图左右两侧的y轴不同

时间:2018-05-30 20:35:21

标签: r

我有以下数据;

https://www.dropbox.com/s/at2f2zni7s1hnzm/results.csv?dl=0

当我使用以下内容绘制所有三个图时;

library(ggplot2)
library(pROC)
    roc <- roc(results$testactual, results$pred)
    ggroc(roc) +
      geom_density(data = results %>%
                     filter(testactual == 0), aes(pred), color='green') + 
      geom_density(data = results %>%
                     filter(testactual == 1), aes(pred), color='black')

我可以在同一张图上获得3个图,但是轴并不像我希望的那样。

我试图使密度图的y轴显示在右侧,而roc图的y轴显示在左侧。

最后对x轴进行排序,使1位于右侧,零位于左侧(但我认为我可以管理这个,因为我之前遇到过这个问题)

直接R链接到数据:

results <- read.csv(url("https://www.dropbox.com/s/at2f2zni7s1hnzm/results.csv?dl=1"))

编辑:只绘制密度图:

enter image description here

ROC图的情节

enter image description here

1 个答案:

答案 0 :(得分:2)

使用sec.axis参数。您也可以使用..scaled..将密度扩展到最大值1.

roc <- roc(results$testactual, results$pred)
ggroc(roc) +
  geom_density(data = results %>%
                 filter(testactual == 0), aes(x=pred, y=..scaled..), color='green') + 
  geom_density(data = results %>%
                 filter(testactual == 1), aes(x=pred, y=..scaled..), color='black') +
scale_y_continuous(name = "Density", sec.axis = sec_axis(~., name = "Sensitivity"))

enter image description here