ggplot 2:如何显示休息时间

时间:2013-09-14 21:21:56

标签: r ggplot2

我不能让ggplot2在水平条中显示中断。代码如下:

dat <- data.frame(
    result = c(replicate(50, 'ok'), replicate(17, 'error'), replicate(35, 'notrun')),
    test = 'test',
    count = 'count'
)

ggplot(data=dat, aes(x=test, y=count, fill=result)) +
    geom_bar(stat="identity") +
    scale_fill_manual(values = c(ok = '#00BA38', error='#F8766D', notrun='gray')) +
    xlab("") + ylab("") +
    scale_x_discrete(label="") +
    scale_y_discrete(breaks = c(1, 7, 9)) +
    coord_flip()

1 个答案:

答案 0 :(得分:2)

如果您离开ggplot

stat=identity会自动计数。在这种情况下,您也可以将计数变量输出:

dat <- data.frame(
    result = c( replicate(50, 'ok'), replicate(17, 'error'), 
                replicate(35, 'notrun') ),
    test = 'test' )

ggplot(data=dat, aes(x=test, fill=result)) +
geom_bar() + 
coord_flip() + 
scale_fill_manual(values = c(ok = '#00BA38', error='#F8766D', notrun='gray'))

澄清我引用geom_bar()上的文档:

“默认情况下,geom_bar使用stat =”bin“。这使得每个条的高度等于每个组中的个案数,并且它与映射值与y美学不兼容。如果你想要用于表示数据中值的条形高度,使用stat =“identity”并将值映射到y美学。“

所以你所做的是在y轴上放置变量count,每行的字符串值“count”相同,因此无法用数字表示。

enter image description here