html
甘特图(Gantt chart),又常被称为横道图或者条状图,是现代企业项目管理领域运用最为普遍的一种图示。就是经过条形来显示项目的进度、时间安排等相关状况的。web
项目管理外,也能够用来管理学习计划。绘制甘特图的工具备不少,本文介绍使用R-plotly包绘制交互式的甘特图,保存html连接后,便可随时查看。微信
library(plotly)
# Read in data
df <- read.csv("GanttChart.csv", stringsAsFactors = F)
# Convert to dates
df$Start <- as.Date(df$Start, format = "%m/%d/%Y")
head(df,3)
数据如上所示,只需任务或者项目内容Task,开始时间Start,持续的时间数据便可绘制甘特图。dom
# 根据Resource 设置甘特图的颜色
cols <- RColorBrewer::brewer.pal(length(unique(df$Resource)), name = "Set3")
df$color <- factor(df$Resource, labels = cols)
# 初始一个空对象
p <- plot_ly()
# 每一个task一个line plot,起始时间和任务持续时长
for(i in 1:(nrow(df) - 1)){
p <- add_trace(p,
x = c(df$Start[i], df$Start[i] + df$Duration[i]), #起试和终止
y = c(i, i), #
mode = "lines",
line = list(color = df$color[i], width = 20), #设置line plot的颜色和线宽
showlegend = F,
hoverinfo = "text", #悬浮信息为text信息
#设置text显示内容
text = paste("Task: ", df$Task[i], "<br>",
"Duration: ", df$Duration[i], "days<br>",
"Resource: ", df$Resource[i]),
evaluate = T ,
xaxis = list(showgrid = F, tickfont = list(color = "#e6e6e6")),
yaxis = list(showgrid = F, tickfont = list(color = "#e6e6e6"),
tickmode = "array", tickvals = 1:nrow(df), ticktext = unique(df$Task),
domain = c(0, 0.9)),
plot_bgcolor = "#333333", # 设置颜色
paper_bgcolor = "#333333"
)
}
去掉 gridlines函数
显示task任务工具
p <- layout(p,
xaxis = list(showgrid = F, tickfont = list(color = "#e6e6e6")),
yaxis = list(showgrid = F, tickfont = list(color = "#e6e6e6"),
tickmode = "array", tickvals = 1:nrow(df), ticktext = unique(df$Task),
domain = c(0, 0.9)),
plot_bgcolor = "#333333", # Chart area 颜色
paper_bgcolor = "#333333") # Axis area 颜色
注:因未掌握交互式插入html方法,所以动态交互图自行运行便可。学习
更多内容:ui
R|生存分析(1):生存分析介绍以及绘制KM曲线lua
Nomogram(诺莫图) | Logistic、Cox生存分析结果可视化spa
maftools | 从头开始绘制发表级oncoplot(瀑布图)
ggalluvial|炫酷桑基图(Sankey),你也能够秀