У меня есть экспериментальные данные, которые я хочу построить, используя ggplot
facet_grid
.
В эксперименте были собраны измерения двух видов, трех условий, в 6 партиях:
species <- c("spcies1","species2")
conditions <- c("cond1","cond2","cond3")
batches <- 1:6
df <- expand.grid(species=species,condition=conditions,batch=batches)
измерения представляют собой дроби от 0 до 1:
set.seed(1)
df$y <- runif(nrow(df),0,1)
В этом случае у меня есть только одна реплика для каждого вида, состояния и партии:
df$replicate <- 1
Но это гибко.
Я хочу раскрасить каждое измерение его видом, состоянием и партией (в этом конкретном примере, поскольку есть одна реплика, каждое наблюдение имеет свой уникальный цвет):
df$col.fill <- paste(df$species,df$condition,df$batch,sep=".")
Факторизация переменных:
df$col.fill <- factor(df$col.fill,levels=unique(df$col.fill))
df$species <- factor(df$species,levels=species)
df$condition <- factor(df$condition,levels=conditions)
Я хочу отобразить данные таким образом, чтобы они были разделены по видам, условиям и партиям, а грани были помечены соответствующим образом.
Вот что я пытаюсь: библиотека (ggplot2)
integerBreaks <- function(n = 5, ...)
{
library(scales)
breaker <- pretty_breaks(n, ...)
function(x){
breaks <- breaker(x)
breaks[breaks == floor(breaks)]
}
}
ggplot(df,aes(x=replicate,y=y,color=col.fill))+
geom_point(size=3)+facet_grid(~species+condition+batch,scales="free_x")+
scale_x_continuous(breaks=integerBreaks())+
theme_minimal()+theme(legend.position="none",axis.title=element_text(size=8))
Это повторяет виды и условия для каждой партии, поэтому этикетки становятся слишком тесными и сокращаются. Есть ли способ, чтобы метки аспектов видов появлялись только один раз для каждого вида, а метки аспектов условий появлялись только один раз для каждого состояния (т. е. следовали их иерархии)?
Это будет означать, что у меня будет только две метки фасетов видов и шесть меток фасетов условий (повторяющихся для каждого вида).
grid
иgtable
, чтобы разрешить вложенные аспекты stackoverflow.com/questions/40316169/ - person Djork   schedule 29.09.2017