ggplot2: изменить порядок точек, чтобы малые значения были большими точками, а большие значения — маленькими точками

#r #ggplot2

#r #ggplot2

Вопрос:

Я только что вошел в R, и у меня что-то происходит. Я застрял в этой проблеме на 2 дня. Я просмотрел множество веб-страниц, чтобы исправить мои ggplots. Я думал спросить здесь. Точки с наименьшим значением p являются маленькими точками, тогда как точки с большими значениями (не столь значимыми — неинтересными) являются большими большими объектами. Я хочу, чтобы маленькие выступали как большие, а большие — как маленькие. У меня есть значения p, которые в значительной степени равны 0. Как я могу соответствующим образом изменить порядок / адаптировать свой код? Я перепробовал множество вариантов. Любые предложения были бы очень полезны.
Большое спасибо всем присутствующим.

 gg <- ggplot(mydata)   
  geom_point(aes(x = celltype, y = reorder(pathways,number), size = pvalue, fill=celltype, color = celltype))   
  scale_color_manual(values=c("red","blue"))   
  labs(title="Reactome pathways enriched in subpopulations", y="Pathway enrichment")
  

Ответ №1:

Типичным решением в такой ситуации является создание новой переменной, которая более непосредственно представляет то, что вы хотите отобразить. Попробуйте добавить significance = 1 / pvalue (или 1 - pvalue , или что угодно, что создает нужные вам размеры).

 library(dplyr)
gg <- ggplot(mydata %>% mutate(significance = 1 / pvalue))   
  geom_point(aes(x = celltype, y = reorder(pathways,number), size = significance, fill=celltype, color = celltype))   
  scale_color_manual(values=c("red","blue"))   
  labs(title="Reactome pathways enriched in subpopulations", y="Pathway enrichment")
  

Комментарии:

1. Идеально! 🙂 Спасибо!!