ggplot geom_point position_jitterdodge не работает, когда указан цвет? - PullRequest
0 голосов
/ 25 сентября 2018

Я подготовил коробку + очки.Я хочу добавить цвета к точкам.position_jitterdodge работал нормально без цвета, как показано на рисунке B, точки близки, что я и собирался сделать.Но когда я пытаюсь добавить цвета к точкам, параметр jitter.width больше не работает (рисунок A).Точки слишком далеко друг от друга.Я пробовал разные цифры для jitter.width, не работает.Как мне решить эту проблему?

library(tidyverse)
library(ggpubr)
mtcars$cyl <- factor(mtcars$cyl)

p1 <- mtcars %>% ggplot(aes(x = cyl, y = mpg, fill = cyl)) +  
  geom_boxplot() +
  geom_point(position = position_jitterdodge(jitter.width = 0.2),
             aes(color = factor(wt)), show.legend = FALSE)

p2 <- mtcars %>% ggplot(aes(x = cyl, y = mpg, fill = cyl)) +  
  geom_boxplot() +
  geom_point(position = position_jitterdodge(jitter.width = 0.2))

ggarrange(p1, p2, labels = c("A", "B"))

ggplot sample

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Похоже, проблема в том, что точки имеют дискретную color эстетику, но не group эстетику.Если вы хотите сохранить окраску с помощью дискретной переменной, добавьте group = cyl к эстетике слоя geom_point.Если вы строите график с другим набором данных, переменная группировки будет той же самой переменной, которую вы строите вдоль оси X.

Один улов: вам нужно увеличить jitter.width, когда вы применяете группировку, чтобы она была видимой,Здесь мне нужно было набрать от 0,2 до 3.

Другой вариант - раскрасить непрерывной переменной.

library(tidyverse)
library(ggpubr)

mtcars$cyl=factor(mtcars$cyl)

p3=mtcars %>% ggplot(aes(x=cyl, y=mpg, fill=cyl))+  
  geom_boxplot()+
  geom_point(aes(color = factor(wt), group = cyl),
         position=position_jitterdodge(jitter.width=0.2),
         show.legend = F)

p4=mtcars %>% ggplot(aes(x=cyl, y=mpg, fill=cyl))+  
  geom_boxplot()+
  geom_point(aes(color = wt),
         position=position_jitterdodge(jitter.width=0.2),
         show.legend = F)

ggarrange(p3, p4)

Это в конечном итоге будет встроено, но сейчас ссылка: color_and_jitter

0 голосов
/ 26 сентября 2018

В p1 точки не только дрожат, они также уклоняются от factor(wt).Если вам нужен только джиттер, установите dodge.width = 0 в position_jitterdodge.

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