在 R 中创建水平条形图以显示活动序列
Creating a horizontal bar chart in R to display sequence of activities
数据集 "patients" 是患者就诊和接受治疗的事件日志。下面的脚本给出了一个数据框,其中包含事件日志中的跟踪或活动序列,trace_id 以及特定跟踪后案例的绝对频率。我希望使用 ggplot2
或 plotly
创建一个动态水平条形图,这样就可以像快照一样表示轨迹,在带有轴标签的条形顶部附有绝对频率(以 % 为单位)。
谢谢,请帮忙!
library("bupaR")
traces(patients, output_traces = T, output_cases = F)
希望这有帮助(但是我无法获得频率)
library(splitstackshape)
tr <- data.frame(traces(patients, output_traces = T, output_cases = F))
tr.df <- cSplit(tr, "trace", ",")
tr.df <- tr.df[,c(1,4:9)]
tr.df <- melt(tr.df, id.vars = "trace_id")
windows()
ggplot(data = tr.df, aes(x = variable,y = trace_id, fill = value, label =
value)) +
geom_tile(colour = "white") +
geom_text(colour = "white", fontface = "bold", size = 2) +
scale_fill_discrete(na.value="transparent") +
theme(legend.position="none")
编辑 1:
library(splitstackshape)
library(bupaR)
library(ggplot2)
tr <- data.frame(traces(patients, output_traces = T, output_cases = F))
tr.df <- cSplit(tr, "trace", ",")
tr.df <- tr.df[,c(1,4:9)]
tr.df <- melt(tr.df, id.vars = "trace_id")
tr.df <- tr.df[order(tr.df$trace_id),]
tr.label <- data.frame(id = tr$trace_id, freq = tr$absolute_frequency)
tr.label <- tr.label[order(tr.label$id),]
windows()
ggplot(data = tr.df, aes(x = variable,y = trace_id, fill = value, label = value)) +
geom_tile(colour = "white") +
geom_text(colour = "white", fontface = "bold", size = 2) +
scale_fill_discrete(na.value="transparent") +
theme(legend.position="none") +
geom_text(data = tr.label, aes(label = freq, y = id, x = 6), nudge_x = 0.3,
colour = "black", fontface = "bold", inherit.aes = FALSE)
数据集 "patients" 是患者就诊和接受治疗的事件日志。下面的脚本给出了一个数据框,其中包含事件日志中的跟踪或活动序列,trace_id 以及特定跟踪后案例的绝对频率。我希望使用 ggplot2
或 plotly
创建一个动态水平条形图,这样就可以像快照一样表示轨迹,在带有轴标签的条形顶部附有绝对频率(以 % 为单位)。
谢谢,请帮忙!
library("bupaR")
traces(patients, output_traces = T, output_cases = F)
希望这有帮助(但是我无法获得频率)
library(splitstackshape)
tr <- data.frame(traces(patients, output_traces = T, output_cases = F))
tr.df <- cSplit(tr, "trace", ",")
tr.df <- tr.df[,c(1,4:9)]
tr.df <- melt(tr.df, id.vars = "trace_id")
windows()
ggplot(data = tr.df, aes(x = variable,y = trace_id, fill = value, label =
value)) +
geom_tile(colour = "white") +
geom_text(colour = "white", fontface = "bold", size = 2) +
scale_fill_discrete(na.value="transparent") +
theme(legend.position="none")
编辑 1:
library(splitstackshape)
library(bupaR)
library(ggplot2)
tr <- data.frame(traces(patients, output_traces = T, output_cases = F))
tr.df <- cSplit(tr, "trace", ",")
tr.df <- tr.df[,c(1,4:9)]
tr.df <- melt(tr.df, id.vars = "trace_id")
tr.df <- tr.df[order(tr.df$trace_id),]
tr.label <- data.frame(id = tr$trace_id, freq = tr$absolute_frequency)
tr.label <- tr.label[order(tr.label$id),]
windows()
ggplot(data = tr.df, aes(x = variable,y = trace_id, fill = value, label = value)) +
geom_tile(colour = "white") +
geom_text(colour = "white", fontface = "bold", size = 2) +
scale_fill_discrete(na.value="transparent") +
theme(legend.position="none") +
geom_text(data = tr.label, aes(label = freq, y = id, x = 6), nudge_x = 0.3,
colour = "black", fontface = "bold", inherit.aes = FALSE)