Я хочу визуализировать взаимодействие между двумя факторами в диаграмме, используя либо цвет, либо текстуру.
Сначала я нарисовал разницу между двумя уровнями одного фактора (балла), а теперь я хочу разделить эти уровни на основе второго фактора (группы).Мой оригинальный сюжет показал разницу между типом партитуры 1 и 2, покрасив столбцы по-разному (черный против белого).В моем втором сюжете я все еще хотел бы подчеркнуть эту схему раскраски, но я не уверен, как это сделать.
Вот пример кода:
## Example data, data from two groups: patients and controls
data_ex <- data.frame( pnum = c(1,2,3,4,5,6,7,8,9,10),
group = c("patient", "patient","patient","patient","patient",
"control", "control", "control", "control", "control"),
score1 = c(26, 15, 17, 15, 20, 21, 18, 19, 16, 20),
score2 = c(25, 19, 14, 18, 20, 22, 17, 19, 18, 19))
## Reshape the data
data_ex_long <- data_ex %>% gather(key = type_score, value = score, score1, score2)
Мой первый сюжет выглядит так:
ggplot(data=data_ex_long,aes(x = type_score, y = score)) +
geom_bar( width=.3, stat = "summary", colour="black", size=1.5, fill =c("#252525","#f0f0f0"), position = position_dodge(width = 0.05),lwd=0.2) +
geom_point( size = 3.5, position=position_jitter(width=0.05), alpha = 0.8, fill="#bdbdbd", colour = "black", shape = 21) +
stat_boxplot(geom = "errorbar", width = 0.0) +
theme(text = element_text(size = 18),
axis.text.x = element_text(size=15, color="#000000"),
axis.text.y = element_text(size=20, color="#000000"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=18, color="#000000"),
axis.line.x = element_line(colour = "black", size = 1.3),
axis.line.y = element_line(colour = "black", size = 1.3),
panel.border = element_blank(),
panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.grid.minor.x = element_blank(), panel.grid.major.x = element_blank(),
panel.background = element_blank(),
axis.ticks.length = unit(.25, "cm"),
axis.line = element_line())
Теперь я хотел быразделить факторы на основе групповой переменной, например, так:
ggplot(data=data_ex_long,aes(x = type_score, y = score, fill = group)) +
geom_bar(stat = "summary",fun.y = "mean", colour="black", size=1.5, position = position_dodge(width = 1)) +
geom_point(aes(type_score, fill = group), colour="black", size = 3.5, shape = 21, position =
position_jitterdodge(jitter.width = 0.2, jitter.height=0.4, dodge.width=0.9), alpha = 0.8) +
geom_errorbar(aes(size=2),stat = 'summary', position = 'dodge', color = "black", width = 1, size = 1) +
theme(text = element_text(size = 18),
axis.text.x = element_text(size=15, color="#000000"),
axis.text.y = element_text(size=20, color="#000000"),
axis.title.x = element_blank(),
axis.title.y = element_text(size=18, color="#000000"),
axis.line.x = element_line(colour = "black", size = 1.3),
axis.line.y = element_line(colour = "black", size = 1.3),
panel.border = element_blank(),
panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.grid.minor.x = element_blank(), panel.grid.major.x = element_blank(),
panel.background = element_blank(),
axis.ticks.length = unit(.25, "cm"),
axis.line = element_line())
Меня не устраивает раскраска таким образом.Мне бы хотелось, чтобы первые два столбца, относящиеся к "Score1", были черными (или, по крайней мере, темно-серыми), а вторые два столбца, относящиеся к "Score2", были белыми.Затем я хотел бы выделить первый и третий столбец как относящиеся к группе «контроль», либо изменив текстуру внутри столбца (полосы?) Или каким-либо другим способом (более толстые линии?).Любые советы о том, как я могу индивидуально настроить внешний вид стержней?
РЕДАКТИРОВАТЬ: Вот очень уродливый пример, сделанный в краске чего-то, что я себе вообразил: