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),你也能夠秀