Я хотел бы создать условный микроканал с использованием R
. В принципе, я хотел бы создать фасет (макет сетки) для четырех разных переменных в примере ниже p_1, p_2, q_1, q_2) и отобразить каждую карту состояний с цветным кодом 1 для синего и 0 для зеленого.Визуализация данных: Карты с использованием ggplot2 и фасетного макета
Ниже приведен пример кода. Данные, которые должны использоваться для цветового кодирования, это «mydata», 0 для зеленого и 1 для удара по каждой переменной p_1, p_2, q_1, q_2. Как бы это сделать при использовании ggplot.
library(ggplot2)
library(maps)
library(scales) # for function alpha()
us.dat <- map_data("state")
ggplot(us.dat, aes(x=long, y=lat, group=group)) + geom_polygon(fill="grey65", colour = alpha("white", 1/2), size = 0.2) +
theme_bw() + theme(legend.position = "none", text = element_blank(), line = element_blank()) + coord_map("polyconic")
# create random data
states <- unique(us.dat$region)
p_1 <- sample(0:1,49,replace=T)
p_2 <- sample(0:1,49,replace = T)
q_1 <- sample(0:1,49,replace=T)
q_2 <- sample(0:1,49,replace = T)
mydata <- as.data.frame(t(rbind(states,p_1,p_2,q_1,q_2)))
Ниже представлен график, который я хотел бы выполнить с помощью одной общей легенды.
Пользователь задал одну общую легенду, изменив 'legend.position =" none "' на 'legend.position =" top "'? – bouncyball
Правильно, я пропустил эту часть вопроса. С 'facet_wrap' создается только одна легенда. Я отредактировал ответ, чтобы прокомментировать аргумент 'legend.position'. –
Большое спасибо, именно то, что я искал. Я получаю следующую ошибку, когда я присоединяюсь к таблице с помощью вашего фрагмента, {Предупреждающее сообщение: В left_join_impl (x, y, by $ x, by $ y): Соединительный фактор и вектор символов, коэрцитирующий в вектор символов}, не уверен почему, поскольку оба государства и регион являются символами. Из того, что я вижу, вы присоединились к двум таблицам, чтобы правильно создать длинный формат? Пожалуйста, дайте мне знать. Спасибо – forecaster