簡體   English   中英

更改中線 ggplot geom_boxplot() 的顏色

[英]Change color of median line ggplot geom_boxplot()

我使用以下通用來生成成對箱線圖。 ctrp.boxdata 看起來像:

        drug       auc            p    group
1 paclitaxel 0.2077276 0.0004955335 High PPS
2 paclitaxel 0.1772445 0.0004955335 High PPS
3 paclitaxel 0.1599633 0.0004955335 High PPS
4 paclitaxel 0.1564113 0.0004955335 High PPS
5 paclitaxel 0.1737403 0.0004955335 High PPS
6 paclitaxel 0.2429842 0.0004955335 High PPS
...
           drug       auc            p   group
139 clofarabine 0.4589299 0.0002743925 Low PPS
140 clofarabine 0.3600058 0.0002743925 Low PPS
141 clofarabine 0.4433972 0.0002743925 Low PPS
142 clofarabine 0.3785587 0.0002743925 Low PPS
143 clofarabine 0.3744288 0.0002743925 Low PPS
144 clofarabine 0.3954452 0.0002743925 Low PPS
p <- ggplot(ctrp.boxdata, aes(drug, auc, fill=group)) + 
  geom_boxplot(aes(col = group),outlier.shape = NA) + 
  geom_text(aes(drug, y=min(ctrp.boxdata$auc) * 1.1, 
                label=paste("p = ",formatC(p,format = "e",digits = 1))),
            data=ctrp.boxdata, 
            inherit.aes=F) + 
  scale_fill_manual(values = c("#0772B9","#48C8EF")) + 
  scale_color_manual(values = c("#0772B9","#48C8EF")) + 
  xlab(NULL) + ylab("Estimated AUC value")

我想改變中線的顏色,我跟着這個線程

dat <- ggplot_build(p)$data[[1]]
p + geom_segment(data=dat, aes(x=xmin, xend=xmax, y=middle, yend=middle), color="white", size=2)

但它給了我一個錯誤:

錯誤:提供給離散刻度的連續值

任何解決方案?

這里的問題是geom_segment()pggplot對象繼承了美學,該對象具有用於colorfill離散比例。 為了避免這種情況,設置inherit.aes = FALSE就像你在上面的geom_text()所做的geom_text()

p + geom_segment(data = dat, 
                 aes(x = xmin, xend = xmax, y = middle, yend = middle), 
                 color = "white", inherit.aes = F)

請注意,我刪除了size = 2因為當您想顯示中位數時,這樣的粗線不是很有幫助。

使用您提供的數據,結果如下所示:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM