Включить метки 2-й переменной в существующую переменную и образец графика geom_jitter - PullRequest
0 голосов
/ 08 мая 2020

У меня есть график geom_jitter, показывающий переменные между двумя образцами, я хотел бы включить параметры групповых переменных слева от графика, установив разделение линиями, как на рисунке ниже. Таким образом, переменные организованы по группам.

Вот воспроизводимый пример:

data<- tibble::tibble(
  Variable = c("A","B","C","D","E", "F"),
  Group = c("Asia","Asia","Europe","Europe","Africa","America"),
  sample1 = c(0.38,0.22,0.18,0.12,0.1,0),
  sample2 = c(0.23,0.2,0,0.12,0.11,0.15))


library(reshape2)
data2<- melt(data,
        id.vars=c("Variable", "Group"),
        measure.vars=c("sample1", "sample2"),
        variable.name="Sample",
        value.name="value")

data22[is.na(data22)] <- 0
library(ggplot2)
ggplot(data2, aes(x = Sample, y = Variable, label=NA)) +
    geom_point(aes(size = value, colour = value)) + 
    geom_text(hjust = 1, size = 2) +
    # scale_size(range = c(1,3)) +
    theme_bw()+
  scale_color_gradient(low = "lightblue", high = "darkblue")

Вот текущий вывод, который у меня есть: Current output:

А вот такой формат мне нужен: enter image description here

1 Ответ

1 голос
/ 08 мая 2020

Чтобы получить отшлифованную версию сюжета, наиболее близкую к вашему идеальному сюжету, вы можете использовать facet_grid() плюс некоторую theme() настройку.

ggplot(data2, aes(x = Sample, y = Variable, label=NA)) +
  geom_point(aes(size = value, colour = value)) + 
  geom_text(hjust = 1, size = 2) +
  # scale_size(range = c(1,3)) +
  theme_bw()+
  scale_color_gradient(low = "lightblue", high = "darkblue") +
  facet_grid(Group~., scales = "free", switch = "y") +
  theme(strip.placement = "outside",
        strip.text.y = element_text(angle = 180),
        panel.spacing = unit(0, "cm"))

enter image description here

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