Ggplot2: отдельная цветовая шкала на грань
Интуитивно я ищу что-то вроде: facet_(scales="free_color")
Я делаю что-то вроде
p <- ggplot(mpg, aes(year, displ, color=model)) + facet_wrap(~manufacturer)
p + geom_jitter()
То есть: вывести 2d измерения от индивидуумов (model
), принадлежащих к разным видам (manufacturer
), гранями которых являются виды, указывающие на индивидуальность по цвету.
Проблема в том, что все люди имеют одну и ту же цветовую шкалу, так что точки в фасетке имеют очень похожие цвета.
Использование групповой эстетики с geom_line решит проблему, но строки расскажут разные истории, чем точки.
Другим очевидным решением было бы отказаться от огранки и нарисовать отдельный график для каждого подмножества. (Если это должно быть единственным решением: есть ли быстрые, умные или проверенные способы сделать это?)
Ответы
Ответ 1
Я не уверен, что это доступный вариант, когда вы раскрашиваете фактор. Однако быстрый способ создания отдельных сюжетов будет примерно таким:
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?
Ответ 2
Я думаю, вы просто хотите покрасить по классам, где каждый производитель выпускает несколько моделей, каждый из которых один или два на класс:
p <- ggplot(mpg, aes(year, displ, color=class)) + facet_wrap(~ manufacturer)
p + geom_jitter()
![alt text]()