ggplot 等待推荐和等待约会
ggplot with wait to referral and wait to appointments
我有一个包含 350 名患者的数据库,包括他们的收入、他们等待转诊的时间以及他们等待预约的时间。这样模拟数据:
set.seed(1)
income<-sort(rep(seq(10,105,5),20))
referral<-runif(400,10,20)+income
appointment<-referral+runif(400,10,20)+income
df<-data.frame(cbind(income,referral,appointment))
df<-df[order(df$income,df$referral),]
我想要一个图,x 轴是收入,每位患者一次观察,y 轴是一条线,从转诊时开始,到第一次预约时不时结束。我不知道这个情节叫什么(高低?)但我已经模拟了我希望它看起来像下面的样子。
谁能推荐一些 ggplot 代码来帮助我制作情节?谢谢
根据什么来着色?我假设收入。
df %>%
ggplot(aes(x=income,y=referral,color=(income),group = income))+
scale_color_gradient2(low = "darkred", mid = "red", high = "green")+
geom_line()
geom_segment()
层很难躲避,因为它只会躲避两个x位置之一。相反,我建议在绘图之前计算正确的闪避。
library(ggplot2)
set.seed(1)
income<-sort(rep(seq(10,105,5),20))
referral<-runif(400,10,20)+income
appointment<-referral+runif(400,10,20)+income
df<-data.frame(cbind(income,referral,appointment))
df<-df[order(df$income,df$referral),]
# Calculate dodges
dodge_width <- 0.8
df$dodge <- unlist(lapply(split(df$income, df$income), function(x) {
seq(-0.5 * dodge_width, 0.5 * dodge_width, length.out = length(x))
}))
# Convert to pseudo-discrete position
df$position <- match(df$income, sort(unique(df$income)))
ggplot(df) +
geom_segment(
aes(x = position + dodge, xend = position + dodge,
y = referral, yend = appointment, group = seq_along(income),
colour = income)) +
scale_x_continuous(
breaks = df$position[!duplicated(df$position)],
labels = df$income[!duplicated(df$position)]
) +
scale_colour_gradientn(
colours = c("red", "yellow", "green")
)
由 reprex package (v2.0.1)
于 2021-09-07 创建
我有一个包含 350 名患者的数据库,包括他们的收入、他们等待转诊的时间以及他们等待预约的时间。这样模拟数据:
set.seed(1)
income<-sort(rep(seq(10,105,5),20))
referral<-runif(400,10,20)+income
appointment<-referral+runif(400,10,20)+income
df<-data.frame(cbind(income,referral,appointment))
df<-df[order(df$income,df$referral),]
我想要一个图,x 轴是收入,每位患者一次观察,y 轴是一条线,从转诊时开始,到第一次预约时不时结束。我不知道这个情节叫什么(高低?)但我已经模拟了我希望它看起来像下面的样子。
谁能推荐一些 ggplot 代码来帮助我制作情节?谢谢
根据什么来着色?我假设收入。
df %>%
ggplot(aes(x=income,y=referral,color=(income),group = income))+
scale_color_gradient2(low = "darkred", mid = "red", high = "green")+
geom_line()
geom_segment()
层很难躲避,因为它只会躲避两个x位置之一。相反,我建议在绘图之前计算正确的闪避。
library(ggplot2)
set.seed(1)
income<-sort(rep(seq(10,105,5),20))
referral<-runif(400,10,20)+income
appointment<-referral+runif(400,10,20)+income
df<-data.frame(cbind(income,referral,appointment))
df<-df[order(df$income,df$referral),]
# Calculate dodges
dodge_width <- 0.8
df$dodge <- unlist(lapply(split(df$income, df$income), function(x) {
seq(-0.5 * dodge_width, 0.5 * dodge_width, length.out = length(x))
}))
# Convert to pseudo-discrete position
df$position <- match(df$income, sort(unique(df$income)))
ggplot(df) +
geom_segment(
aes(x = position + dodge, xend = position + dodge,
y = referral, yend = appointment, group = seq_along(income),
colour = income)) +
scale_x_continuous(
breaks = df$position[!duplicated(df$position)],
labels = df$income[!duplicated(df$position)]
) +
scale_colour_gradientn(
colours = c("red", "yellow", "green")
)
由 reprex package (v2.0.1)
于 2021-09-07 创建