26

一张图说一千多个字。如您所见, myfill是基于变量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()
4

3 回答 3

35

这远非完美,但希望朝着正确的方向迈出一步,因为它被 躲过了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()

在此处输入图像描述

于 2012-06-25T07:02:56.243 回答
3

添加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()
于 2012-06-24T12:38:18.313 回答
1

您可能需要将您的Methodvariable因素分开。这里有两种方法可以做到这一点:

使用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()
于 2012-06-25T15:46:28.897 回答