Преобразование оси в ggplot2 - PullRequest
       17

Преобразование оси в ggplot2

0 голосов
/ 24 января 2019

Я пытаюсь создать коробочный график с помощью ggplot2 и хочу показать среднее и среднее значение. Когда я преобразую ось Y в отрицательный лог 10, средние значения, отображаемые на графике, меняются (X2 и X3 переворачиваются), и они неверны.

Вот мой код:

x <- read.table("stackoverflow.txt", sep="\t", header=T)

library(tidyr)

y <- x %>% gather(key, value, 2:6)

library(ggplot2)

z <- ggplot(y, aes(x = key, y = -log10(value), color = key)) + 
  geom_boxplot() + 
  theme_bw() + 
  theme(axis.text.x = element_text(angle = 90, hjust = 1), 
        axis.text = element_text(size = 12), 
        axis.title = element_text(size = 14, face = "bold")) + 
  labs(x = "" , y = "-Log10(T)") +
  coord_cartesian(ylim = c(6, 13)) + 
  scale_y_continuous(breaks = seq(6, 13, 2))

z + stat_summary(fun.y = mean, geom = "point", shape = 18, size = 3,
                 show.legend = TRUE, color = "black") +
  geom_point(aes(shape = "mean"), alpha = 0) + 
  guides(shape = guide_legend(title = NULL, override.aes = list(alpha = 1)))

means <- aggregate(value ~ key, y, mean)

means

key       value
1  X1 1.142106e-09
2  X2 1.038333e-09
3  X3 7.831222e-10
4  X4 1.216502e-09
5  X5 1.321300e-09

Файл, который я использую, разделен табуляцией

Ratio   1           2           3           4           5    
0.01    1.56E-13    1.09E-13    1.22E-11    2.22E-12    1.79E-11   
0.02    3.98E-11    8.89E-12    2.59E-11    2.93E-11    4.88E-11   
0.03    1.96E-10    1.00E-10    1.02E-10    1.05E-10    1.90E-10
0.04    4.98E-10    2.46E-10    3.89E-10    6.68E-10    4.83E-10
0.05    7.35E-10    8.30E-10    6.59E-10    9.14E-10    9.62E-10
0.06    1.18E-09    1.25E-09    1.01E-09    1.51E-09    1.68E-09
0.07    2.05E-09    1.77E-09    1.48E-09    2.13E-09    2.13E-09
0.08    2.48E-09    2.39E-09    1.64E-09    2.62E-09    3.05E-09 
0.09    3.10E-09    2.75E-09    1.73E-09    2.97E-09    3.33E-09

1 Ответ

0 голосов
/ 24 января 2019

Я попытался добавить еще один столбец во фрейм данных y с отрицательными значениями log10 Средство шва правильное и соответствует сюжету

y$l10val <- -log10(y$value)

z <- ggplot(data <- y, aes(key,-log10(value),color = key)) + 
  geom_boxplot() + 
  theme_bw() + 
  theme(axis.text.x = element_text(angle = 90, hjust = 1), 
        axis.text = element_text(size = 12), 
        axis.title = element_text(size = 14, face = "bold")) + 
  labs(x = "" , y = "-Log10(Threshold)") +
  coord_cartesian(ylim = c(6, 13)) + 
  scale_y_continuous(breaks = seq(6, 13, 2))

z + stat_summary(fun.y = mean, geom = "point", shape = 18, size = 3,
                 show.legend = TRUE, color = "black") +
  geom_point(aes(shape = "mean"), alpha = 0) + 
  guides(shape = guide_legend(title = NULL, override.aes = list(alpha = 1)))

means <- aggregate(l10val ~ key, y, mean)
means
...