1

以下是给出时间轴值从 0-300 的堆叠条形图的代码。但我希望它是从 1 到 24。

代码:

library(ggplot2)
dataFrame <- data.frame(sr=c(1:72),
                      hours=c(1:24),
                      mode=factor(c(""),levels = c("SecureMessaging","WebLogs","IVR")),
                      status=factor(c("Inactive"),levels = c("Active","Inactive")))
dataFrame$mode[1:24] <- "SecureMessaging"
dataFrame$mode[25:48] <- "WebLogs"
dataFrame$mode[49:72] <- "IVR"
dataFrame$status[2] <- "Active"
dataFrame$status[7] <- "Active"
dataFrame$status[24] <- "Active"
dataFrame$status[2+24] <- "Active"
dataFrame$status[12+24] <- "Active"
dataFrame$status[15+24] <- "Active"
dataFrame$status[3+48] <- "Active"
dataFrame$status[5+48] <- "Active"
dataFrame <- na.omit(dataFrame)
plot <- ggplot(data=dataFrame, aes(x=mode, y=hours, fill=status)) + geom_bar(stat="identity")
plot <- plot+coord_flip()
plot <- plot+ggtitle("Data Analytics")
plot <- plot+xlab("Mode")
plot <- plot+ylab("Time Line")
print(plot)

在此处输入图像描述

4

3 回答 3

1

从技术上讲,这不是一个直接的答案,因为我建议使用以下替代实现geom_tile

gg <- ggplot(data=dataFrame, aes(y=mode, x=factor(hours)))
gg <- gg + geom_tile(aes(fill=status))
gg <- gg + coord_equal()
gg <- gg + labs(x="Mode", y="Time Line", title="Data Analytics")
gg <- gg + theme_bw()
gg <- gg + theme(panel.grid=element_blank())
gg <- gg + theme(panel.border=element_blank())
gg <- gg + theme(legend.position="bottom")
gg

在此处输入图像描述

于 2014-10-15T10:58:20.543 回答
0

如果您想将结果剪切为 24(在 0,300 范围内),请在 print(plot) 之前添加以下行。然而,结果还不完美,因为“非活动”柱在 24 点之前停止。

plot <- plot+ylim(0,24)

但是,我不确定你是否想要这个。可能您对 r 应用的 0-300 缩放不满意,并希望将其设置为 0-24。在这种情况下,请尝试以下操作。“1”应替换绘图函数中的“小时”,如下所示:

plot <- ggplot(data=dataFrame, aes(x=mode, 1, fill=status)) + geom_bar(stat="identity")

第二个选项的数字

于 2014-10-15T11:09:01.697 回答
0

具有适当 x 轴的条形图:

ggplot(dataFrame, aes(x=hours,y=status, fill=status))+ geom_bar(stat='identity')+ facet_grid(mode~.)

在此处输入图像描述

于 2014-10-15T13:52:39.367 回答