我不能让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()
答案 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”相同,因此无法用数字表示。