簡體   English   中英

R ggplot:更改Grouped Boxplot Median行

[英]R ggplot: Change Grouped Boxplot Median line

我已經繪制了分組的箱形圖,現在我想用白線代替標准的黑色中線,同時保持邊框為另一種顏色。 我正在按照Minimalist Boxplots網站上的說明進行操作,因為我非常喜歡他們的風格。

他們使用命令stat_summary(geom = "crossbar", width=0.65, fatten=0, color="white", fun.data = function(x){ return(c(y=median(x), ymin=median(x), ymax=median(x))) }) 該命令適用於簡單的箱形圖: 在此輸入圖像描述

但是現在我正在嘗試在我的分組箱圖上使用它,它不再工作了(缺少白色中線):

在此輸入圖像描述

這是我復制數據的代碼:

Data <- data.frame(
  W = sample(1:100),
  M = sample(1:100),
  A = sample(1:100),
  O = sample(1:100),
  Type = sample(c("1", "2", "3", "4", "5")))

我的劇本:

Data_Boxplot <- melt(Data,id.vars='Type', measure.vars=c('W','M','A', 'O'))
Boxplots <- ggplot(Data_Boxplot, aes(Type, value, group=variable)) +
  geom_boxplot(outlier.colour = NULL, aes(color=variable, fill=variable)) + 
  stat_summary(geom = "crossbar", width=0.65, fatten=0, color="white", 
               fun.data = function(x){c(y=median(x), ymin=median(x), ymax=median(x))})
Boxplots

我需要改變什么? 非常感謝您的幫助。

您只映射了geom_boxplot xy 應該為所有人映射在地理位置之間共享的變量。 在這種情況下,您還需要按variable分組。

ggplot(Data.m, aes(Type, value, group=variable) +
  geom_boxplot(outlier.colour = NULL, aes(color=variable, fill=variable)) + 
  stat_summary(geom = "crossbar", width=0.65, fatten=0, color="white", 
               fun.data = function(x){c(y=median(x), ymin=median(x), ymax=median(x))})

我沒有測試,因為你沒有提供數據。

編輯:

好的,現在我們有一個很好的數據示例,我們可以看到正在發生的事情。

實際上我錯過了兩個問題。 兩者都是因為geom_boxplot會自動解決一些問題給你,因為的fill ,即stat_summary沒有。 所以我們必須手動完成它們。

首先,我們想要對variableType進行分組,我們可以通過使用interaction功能來實現。

其次,箱形圖被自動躲避(即在組內移動),而水平線則不是。 我們將使用position_dodge定義我們的定位,並將其應用於兩個geoms。 將它應用於兩者是使它們完全對齊的最簡單方法。 我們最終得到:

p <- position_dodge(0.8)
ggplot(Data_Boxplot, aes(Type, value, group = interaction(variable, Type))) +
  geom_boxplot(aes(color = variable, fill = variable), outlier.colour = NULL, position = p) + 
  stat_summary(geom = "crossbar", width = 0.6, fatten=0, color="white", position = p,
               fun.data = function(x){c(y=median(x), ymin=median(x), ymax=median(x))}) +
  theme_minimal()

在此輸入圖像描述

暫無
暫無

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

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