удлините линию в медиане и графике iqr

#r #ggplot2

#r #ggplot2

Вопрос:

Я пытаюсь построить график IQR без минимума или максимума, и я просто хочу отобразить медиану и IQR. Причина в том, что я работаю с конфиденциальными данными, и отображение выбросов может идентифицировать участников. Мне удалось создать версию приведенного ниже графика, но, как вы можете видеть,» -«, представляющее медиану, не растягивается полностью по столбцам. Можно ли сделать так, чтобы «-» было длиной каждого стержня? Другие пакеты для ответа на этот вопрос приветствуются, также приемлемо, чтобы график был составлен из агрегированных или необработанных данных.

 library(ggplot2)  library(dplyr)    median_IQR lt;- function(x) {  data.frame(y = median(x), # Median  ymin = quantile(x)[2], # 1st quartile  ymax = quantile(x)[4]) # 3rd quartile }  iris lt;- mutate(iris, let = rep(c("a","b"), nrow(iris)/2))  p lt;- ggplot(iris, aes(x=Species, y=Sepal.Length, color = let, fill=let ))  posn.d lt;- position_dodge(width=0.5)   p     stat_summary(geom = "crossbar",  fun.data = median_IQR,   position = 'dodge')     stat_summary(geom = "point",   fun = "median",   position = posn.d,   size = 3,   col = "black",   shape = "_")     

сюжет с тире

Ответ №1:

Переписав первое stats_summary решение, используя geom function вместо stat function :

 rm(list = ls())  library(ggplot2) library(dplyr)   iris lt;- mutate(iris, let = rep(c("a","b"), nrow(iris)/2))  p lt;- ggplot(iris, aes(x=Species, y=Sepal.Length, color = let, fill=let )) theme_bw()    p   geom_pointrange(mapping = aes(x=Species, y=Sepal.Length),  stat = "summary",  fun.min = function(z) {quantile(z,0.25)},  fun.max = function(z) {quantile(z,0.75)},  fun = median,   size=1)  

Чтобы сгруппировать точки рядом

 p boxplot()  

введите описание изображения здесь

Иначе

введите описание изображения здесь

Комментарии:

1. спасибо за решение, как вы думаете, есть ли в любом случае возможность использовать это в виде прямоугольника вместо линейного графика ?