Ошибка при попытке добавить цвета в R ggplot (график вулкана) - PullRequest
0 голосов
/ 20 апреля 2020

Хотел сделать заговор вулкана, который был окрашен, основываясь на значении и дифференциальном выражении. Сделал фрейм данных с использованием toptable в R из объекта Limma. Добавлен цветной столбец во фрейм данных на основе скорректированного значения p и logf c. Таким образом, каждому гену также был назначен цвет («заливка»), а затем использовались эти цвета для создания ggplot:

 geom_point(mapping = aes(x= logFC, y= log10adj, colour = fill))+
 geom_hline(yintercept=1.3, linetype="dashed", color = "red")+
 geom_vline(xintercept=-1, linetype="dashed", colour= "blue")+
 geom_vline(xintercept=1, linetype="dashed", colour= "blue")+
 xlab("Log2 Fold Change")+
 ylab("-Log10 Adjusted P-value")+
 xlim(-3,3)+
 theme_grey()

Но тогда ggplot не окрашен должным образом:

Неправильно plot

Если я добавлю фигуру к эстетике c, я получу ошибку:

ggplot(voom_topt)+
  geom_point(mapping = aes(x= logFC, y= log10adj, colour = fill, shape = 23))+
  geom_hline(yintercept=1.3, linetype="dashed", color = "red")+
  geom_vline(xintercept=-1, linetype="dashed", colour= "blue")+
  geom_vline(xintercept=1, linetype="dashed", colour= "blue")+
  xlab("Log2 Fold Change")+
  ylab("-Log10 Adjusted P-value")+
  xlim(-3,3)+
  theme_grey()

Ошибка: непрерывную переменную нельзя сопоставить с формой Выполнить rlang::last_error() чтобы увидеть, где произошла ошибка.

Кто-нибудь имеет какие-либо идеи, как решить эту проблему? Я не могу понять, почему это идет не так (Ps, я довольно плохо знаком с R)

Спасибо за любую помощь !!

1 Ответ

1 голос
/ 21 апреля 2020

Вам нужно использовать scale_color_manual, поэтому

ggplot(mtcars) +
geom_point(mapping = aes(
  x = mpg, y = wt, color = factor(cyl))) + 
scale_color_manual(values = c("red", "black", "green"))

Из того, что я вижу в вашем коде, вы должны установить color = factor(fill), а затем передать свои четыре цвета в scale_color_manual

...