Я создал круговую сетку, в которой каждая строка отображает положение государства по 7 различным параметрам в зависимости от размеров круга. Эти параметры приведены в процентах и составляют до 100 для каждого состояния. Для моей facet_grid я бы хотел покрасить и настроить размер каждого круга на основе шкалы для отдельных состояний, а не для всей сетки. Я подробно остановлюсь на примере.
круговая сетка
library(ggforce)
library(tidyverse)
library (ggplot)
library(reshape2)
d <- data.frame("state" = c("Alabama", "Florida", "Washington", "New York"),
"A" = c(20, 25, 45, 11),
"B" = c(25, 25, 10, 4),
"C" = c(50, 5, 20, 5),
"D" = c(5, 45, 25, 80))
d1 <- melt(d, id.vars = "state")
p3 <- ggplot(d1) +
geom_circle(aes(x0 = 0.5, y0 = 0.5, r = value, color = "white", fill = value), data = d1) +
scale_fill_continuous(low = "#5fc5bd", high = "#f37021") +
scale_color_manual(values = "white") +
coord_fixed() +
theme_bw() +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.ticks = element_blank() ,
legend.position = "none",
panel.border = element_blank(),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
axis.text = element_blank())
p3 <- p3 + facet_grid(state ~ variable, labeller=label_wrap_gen(width=10)) +
theme(strip.text.x = element_text(size = 10, face = "bold"),
strip.text.y = element_text(size = 10, face = "bold"),
strip.background = element_rect(colour = "gray", fill = "white"))
p3
На данный момент круги на графике масштабируются в соответствии с самыми большими значениями во всем наборе данных. Я хотел бы, чтобы он учитывал значения для каждого штата и масштабировал размеры кругов на основе значений для каждого штата - поэтому самый большой круг в Алабаме должен быть C, окрашен в оранжевый цвет (самое высокое значение для этого штата) и аналогично для других штатов , Любые идеи будут очень полезны, спасибо.