ggplot2: отдельная цветовая шкала для фасета - PullRequest
16 голосов
/ 19 ноября 2010

Интуитивно я ищу что-то вроде: facet_(scales="free_color")

Я делаю что-то вроде

p <- ggplot(mpg, aes(year, displ, color=model)) + facet_wrap(~manufacturer)
p + geom_jitter()

То есть: график 2d измерений от особей (model), принадлежащих к разным видам (manufacturer), ограненных видом, с указанием особи по цвету. Проблема заключается в том, что все люди имеют одинаковую цветовую шкалу, поэтому точки фасета имеют очень похожие цвета.

Использование групповой эстетики с geom_line решило бы проблему, но линии рассказывают другую историю, чем точки.

Еще одно очевидное решение - сбросить огранку и нарисовать отдельный график для каждого подмножества. (Если это должно быть единственным решением: есть ли быстрый, умный или проверенный способ сделать это?)

Ответы [ 2 ]

5 голосов
/ 19 ноября 2010

Я не уверен, что это доступный вариант, когда вы раскрашиваете с коэффициентом.Однако быстрый способ создания отдельных графиков будет выглядеть примерно так:

d_ply(mpg, .(manufacturer), function(df) {
jpeg(paste(df$manufacturer[[1]], ".jpeg", sep=""))
plots <- ggplot(df, aes(year, displ, color=factor(model))) + geom_jitter()
print(plots)
dev.off()
})

Связанные ответы: Различные легенды и цвета заливки для фасетного ggplot?

4 голосов
/ 22 ноября 2010

Я думаю, вы просто хотите раскрасить по классам, где каждый производитель делает несколько моделей, каждая только по одной или две на класс:

p <- ggplot(mpg, aes(year, displ, color=class)) + facet_wrap(~ manufacturer)
p + geom_jitter()

alt text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...