R ggplot barplot; Заполнение на основе двух отдельных переменных
В картине написано более тысячи слов. Как вы можете видеть, мой fill
основан на переменной variable
.
Внутри каждого столбца есть, однако, несколько объектов данных (черные границы), поскольку дискретная переменная complexity
делает их уникальными. То, что я пытаюсь найти, - это то, что делает каждый раздел панели более различимым, чем текущий вид. Предпочтительным было бы, если бы это было что-то вроде затенения.
![http://s12.postimage.org/ltgs677ul/snapshot2.png]()
Вот пример (не тот же набор данных, поскольку оригинал был импортирован):
dat <- read.table(text = "Complexity Method Sens Spec MMC
1 L Alpha 50 20 10
2 M Alpha 40 30 80
3 H Alpha 10 10 5
4 L Beta 70 50 60
5 M Beta 49 10 80
6 H Beta 90 17 48
7 L Gamma 19 5 93
8 M Gamma 18 39 4
9 H Gamma 10 84 74", sep = "", header=T)
library(ggplot2)
library(reshape)
short.m <- melt(dat)
ggplot(short.m, aes(x=Method, y= value/100 , fill=variable)) +
geom_bar(stat="identity",position="dodge", colour="black") +
coord_flip()
Ответы
Ответ 1
Это далека от совершенства, но, надеюсь, шаг в правильном направлении, поскольку он уклонился от variable
, но все же может каким-то образом представить Complexity
:
ggplot(short.m, aes(x=Method, y=value/100, group=variable, fill=variable, alpha=Complexity,)) +
geom_bar(stat="identity",position="dodge", colour="black") +
scale_alpha_manual(values=c(0.1, 0.5, 1)) +
coord_flip()
![enter image description here]()
Ответ 2
Трудно быть уверенным без воспроизводимого примера, как сказал Чейз, но добавление alpha=complexity
может работать:
ggplot(short.m, aes(x=Method, y= value/100 , fill=variable, alpha=complexity)) +
geom_bar(stat="identity",position="dodge", colour="black") + coord_flip()
Ответ 3
Вам может потребоваться отделить ваши факторы Method
и variable
. Вот два способа сделать это:
Используйте facet_wrap()
:
ggplot(short.m, aes(x=variable, y=value/100, fill=Complexity)) +
facet_wrap(~ Method) + geom_bar(position="stack", colour="black") +
scale_alpha_manual(values=c(0.1, 0.5, 1)) + coord_flip()
Используйте оба значения по оси x:
ggplot(short.m, aes(x=Method:variable, y=value/100, group=Method, fill=variable, alpha=Complexity,)) +
geom_bar(stat="identity", position="stack", colour="black") +
scale_alpha_manual(values=c(0.1, 0.5, 1)) + coord_flip()