R-plotly|交互式甘特圖(Gantt chart)-項目管理/學習計劃

本文首發於「生信補給站」微信公衆號,https://mp.weixin.qq.com/s/CGz51qOjFSJ4Wx_qOMzjiw 更多關於R語言,ggplot2繪圖,生信分析的內容,敬請關注小號。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"
)
}

更改Layout信息

  1. 去掉 gridlines函數

  2. 顯示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

Forest plot(森林圖) | Cox生存分析可視化

maftools|TCGA腫瘤突變數據的彙總,分析和可視化

maftools | 從頭開始繪製發表級oncoplot(瀑布圖)

ggalluvial|炫酷桑基圖(Sankey),你也能夠秀

ggplot2|詳解八大基本繪圖要素

ggplot2|ggpubr進行「paper」組圖合併

pheatmap|暴雨暫歇,「熱圖」來襲!!!

ggplot2-plotly|讓你的火山圖「活」過來

ggplot2| 繪製KEGG氣泡圖

ggplot2|繪製GO富集柱形圖

繪圖系列|R-corrplot相關圖

繪圖系列|R-VennDiagram包繪製韋恩圖

R|clusterProfiler-富集分析

 

【以爲不錯,右下角點個「在看」,期待您的轉發,謝謝!】

相關文章
相關標籤/搜索