r - 在 R 中,绘制连续/序列事件

标签 r ggplot2 rcharts sequence-diagram

编辑:遵循建议

我试图根据这篇文章创建一个简单的连续事件频率图:ggplot sequence patterns

我想堆积相同的情节,但对于其他科目(不同的序列)
主题 "aa", "bb", "cc"
示例数据集如下:

subject <- c("aa","aa","aa","aa","aa","aa","aa", "bb","bb","bb","bb","bb","bb","bb","cc","cc","cc","cc","cc","cc","cc")
event <- c("P","C","D","C","P","E","D","C","P","E","D","P","C","E","P","E","D","P","C","x","x")
freq <- c(3,2,1,4,2,1,0,3,4,1,3,3,1,2,1,3,2,1,4,0,0))

dfx <- data.frame(subject, event, freq)

我得到的结果是:
my result, bad

使用此代码,基于原始帖子:
library(ggplot2)

dfx$type <- factor(dfx$type)
dfx$ymin <- c(0,1,2)
dfx$ymax <- c(1,2,3)
dfx$xmax <- cumsum(dfx$count)
dfx$xmin <- c(0, head(dfx$xmax, n=-1))

plot_x <- ggplot(dfx, 
            aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax,fill=type))   +geom_rect(colour="grey40", size=0.5)

png("plot_x.png", height=200, width=800)
print(plot_x)
dev.off()

我用我想要绘制的内容创建了这个图像。 (它是在excel中手工制作的)。在这种情况下,我们有 3 个主题、4 个事件(C、P、D、E)+1 个虚拟事件(X),这是创建数据框所必需的。如您所见,每个主题的事件总数不必相等。
expected

最佳答案

尝试使用 facet_gridfacet_wrap

library(ggplot2)
p1  <-  
    ggplot(dfx, aes(xmin = xmin, xmax = xmax, ymin = ymin, ymax = ymax, fill = event))+
    theme_bw() + 
    geom_rect(colour = "black", size = 0.5) + 
    facet_grid(subject ~ .) + 
    theme(axis.ticks.y=element_blank(), axis.text.y=element_blank())

p1

enter image description here
数据:
dfx <- data.frame(
       subject = c("aa","aa","aa","aa","aa","aa","aa", "bb","bb","bb","bb","bb","bb","bb","cc","cc","cc","cc","cc","cc","cc"),
       event = c("P","C","D","C","P","E","D","C","P","E","D","P","C","E","P","E","D","P","C","x","x"),
       freq = c(3,2,1,4,2,1,0,3,4,1,3,3,1,2,1,3,2,1,4,0,0),
       ymin = 0,
       ymax = 1)

TEMP        <-  tapply(dfx$freq,dfx$subject,cumsum)
dfx$xmax    <-  unlist(TEMP)
dfx$xmin    <-  c(0, head(TEMP$aa, -1), 0, head(TEMP$bb, -1), 0, head(TEMP$cc, -1))

关于r - 在 R 中,绘制连续/序列事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30313365/

相关文章:

r - 整合 : evaluation of function gave a result of wrong length 时出错

r - 用points()绘制函数

r - 根据长数据上 id 变量的值(与行号无关)为 ggplot 中的特定标签着色

r - 减少 ggpairs 图中的线条粗细和 'Corr:' 字体大小

R:交互式绘图(工具提示):rCharts 凹坑图:格式化轴

rcharts - 对 Rcharts 使用百分比宽度

r - 如何使用R使热图中的像元大小调节数据分辨率?

r - 使用 x 轴上的日期更改 ggplot2 条的顺序

r - 我可以在 ggplot2 或 rCharts 中获得交互式绘图吗?

r - 计算一段时间内的因子水平