ggplot - фасет по выводу функции
Я не уверен, как следует учитывать функцию данных вdata
элементggplot
объект. В следующем примере с игрушкой я хочу сделать что-то вроде этого:
df <- data.frame(x=1:8, y=runif(8), z=8:1)
ggplot(df, aes(x=x, y=y)) + geom_point() + facet_wrap( ~ (z %% 2))
Но это дает ошибку:Error in layout_base(data, vars, drop = drop) : At least one layer must contain all variables used for facetting
.
Я могу достичь желаемого результата, преобразовав фрейм данных:
ggplot(transform(df, z=z%%2), aes(x=x, y=y)) + geom_point() + facet_wrap( ~ z)
но часто желательно не использовать такое преобразование, например, если мне уже далиggplot
объект, и я хочу добавить некоторую специальную огранку к нему.