#r #ggplot2 #outliers #yaxis
#r #ggplot2 #выбросы #yaxis
Вопрос:
Я знаю, что Хэдли высказался о том, чтобы не вставлять разрывы в данные, но есть ли способ поместить разрыв в эти данные в ggplot 2? Мне действительно нравится пакет, и я боюсь необходимости менять все мои графики и изучать другой пакет.
Мои данные выглядят следующим образом — я предоставил примеры, пока не опубликую, у меня много данных на нижнем конце и несколько выбросов на верхнем конце,
Date Site Al
07/10/2014 Bo6 32
07/10/2014 Bo1 32
07/10/2014 Bo3 40
07/10/2014 Bo4 60
07/10/2014 Bo5 51
07/10/2014 B14
07/10/2014 B4
07/10/2014 B3
07/10/2014 B5
07/10/2014 B8
07/10/2014 B11
07/10/2014 B13
14/10/2014 Bo6
14/10/2014 Bo1 100
14/10/2014 Bo3 300
14/10/2014 Bo5 2000
14/10/2014 Bo4 3000
14/10/2014 B14
14/10/2014 B3
14/10/2014 B4
14/10/2014 B5
14/10/2014 B8
14/10/2014 B12
4/10/2014 B11
14/10/2014 B13
28/10/2014 Bo4 1000
28/10/2014 Bo5 2000
28/10/2014 Bo6 3000
28/10/2014 B3
28/10/2014 B4
28/10/2014 B5
28/10/2014 B6
28/10/2014 B7
28/10/2014 B8
28/10/2014 B9
28/10/2014 B10
28/10/2014 B11
28/10/2014 B12
28/10/2014 B13
28/10/2014 B14
31/10/2014 B1
31/10/2014 D1
Я использовал следующий код:-
require(ggplot2)
require(reshape2)
require(magrittr)
require(dplyr)
require(tidyr)
require(cowplot)
require(grid)
require(scales)
setwd("~/Documents/Results")
mydata <- read.csv("Metals sheet R.csv")
L <- subset(mydata, Site =="Bo1"| Site == "Bo2"| Site == "Bo3"| Site == "Bo4"| Site == "Bo5" | Site == "Bo6", select = c(Site,Date,Al))
L$Date <- as.Date(L$Date, "%d/%m/%Y")
I <- ggplot(data=L, aes(x=Date, y=Al, colour=Site))
geom_point()
labs(title = "Total aluminium in the Bowydd
2014-2015.", x = "Month 2014/2015",
y = "Total concentration (mg/L)")
scale_x_date(date_breaks = "1 month", date_labels = "%m") theme_get()
r2 <- I geom_hline(aes(yintercept= 10, linetype = "NRW limit"), colour= 'red')
geom_hline(aes(yintercept= 75.5, linetype = "Geochemical atlas limit"), colour= 'blue')
scale_linetype_manual(name = "Limit", values = c(2, 2),
guide = guide_legend(override.aes = list(color = c("blue", "red"))))
ggdraw(r2) draw_figure_label(label = "(a)", position ="top.left")
Как вы можете видеть, высокие точки скрывают приведенные ниже данные. Возможно ли поставить разрыв в данных по оси y или лучше записать преобразование?
Заранее спасибо.
Комментарии:
1. используйте пакет real graphics для одного изображения и сделайте его похожим на другие ваши изображения
2. Спасибо! звучит правдоподобно!
3.
scale_y_log10
это выглядит намного лучше. Хэдли считает (не без оснований), что сломанные оси y вводят в заблуждение, поэтому их нелегко построить в ggplot2.