我试图绘制一系列代表不同类型活动的彩色小方块。例如,在以下数据框中,type表示活动的类型和 count表示在发生“不同类型”活动之前发生的活动中有多少。
df3 <- data.frame(type=c(1,6,4,6,1,4,1,4,1,1,1,1,6,6,1,1,3,1,4,1,4,6,4,6,4,4,6,4,6,4),
count=c(6,1,1,1,2,1,6,3,1,6,8,10,3,1,2,2,1,2,1,1,1,1,1,1,3,3,1,17,1,12) )
到目前为止,ggplot我没有使用计数。我只是将连续数字作为xvalues,将1作为yvalues。但它给了我ggplot Image之类的东西 这是我使用的代码,请注意,对于y我总是使用1而对于x我只使用连续的数字:
ggplot(df3,aes(x=1:nrow(df3),y=rep(1,30))) + geom_bar(stat="identity",aes(color=as.factor(type)))
我想得到宽度= df3 $ count的小方块。
你有什么建议吗?提前致谢
答案 0 :(得分:2)
我并不完全清楚你需要什么,但我提供了一种绘制数据的方法。我使用geom_rect()
绘制宽度等于count
列的矩形。矩形的绘制顺序与数据行的顺序相同。
df3 <- data.frame(type=c(1,6,4,6,1,4,1,4,1,1,1,1,6,6,1,
1,3,1,4,1,4,6,4,6,4,4,6,4,6,4),
count=c(6,1,1,1,2,1,6,3,1,6,8,10,3,1,2,
2,1,2,1,1,1,1,1,1,3,3,1,17,1,12))
library(ggplot2)
df3$type <- factor(df3$type)
df3$ymin <- 0
df3$ymax <- 1
df3$xmax <- cumsum(df3$count)
df3$xmin <- c(0, head(df3$xmax, n=-1))
plot_1 <- ggplot(df3,
aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax, fill=type)) +
geom_rect(colour="grey40", size=0.5)
png("plot_1.png", height=200, width=800)
print(plot_1)
dev.off()