數據可視化—如何利用R,製作DashBoard
摘要:## '1-Sidebar'```{r}# page2的數據,直接借用page1的了library(ggplot2)library(ggthemes)mydata_Use_Time
作者:小橙子
來源:小橙子學數據分析
之前揚言要用R,製作一個DashBoard。結果給自己挖了個坑,看了好久的外文網站,依靠谷歌翻譯和僅留的英語基礎,總算完成了。
今天分享的是Rmarkdown中的flexdashboard,可以作爲數據產品原型開發的樣板。假如創業公司,不捨得花錢買BI工具,也可以
以Umeng的DashBoard作爲參考,利用flexdashboard製作了一個類似的。
首先查看下umeng的原圖:
再看下flexdashboard的效果圖:
與Umeng相比,缺乏美感(渲染不行)
小橙子製作的樣本,已經上傳至http://rpubs.com/CHENGZI/dashboard,有興趣的同學,可以實際點擊查看下
flexdashboard知識點(太多了,寫不完,推薦大家看其他人總結的)
https://bookdown.org/yihui/rmarkdown/dashboard-components.html#navigation-bar
https://zhuanlan.zhihu.com/p/41423522
https://rmarkdown.rstudio.com/flexdashboard/shiny.html#input_sidebar
小橙子的源碼如下:
```{r setup, include=FALSE}library(flexdashboard)library(ggplot2)library(ggthemes)```
page 1===================================== ## Sidebar {.sidebar}[Page 1]
[Page 2]
## '1-Sidebar'### 新增用戶
```{r}valueBox(75, icon = "fa-user-plus",color = ifelse(75< 100, "warning", "primary"))```
### 活躍用戶
```{r}valueBox('1,000', icon = "fa-user-friends",color = "info")```
### 近7日總活躍用戶數
```{r}valueBox('3,000', icon = "fa-users",color = "#ffffff")```
### 近30日總活躍用戶數
```{r}valueBox('10,000', icon = "fa-users")```##整體趨勢2### 新用戶次日留存率(7日平均)
```{r}valueBox('75%', icon = "fa-hourglass-start")```### 使用時長(7日平均)
```{r}valueBox('00:60:20', icon = "fa-user-clock")```### 累計用戶數
```{r}valueBox("23,000", icon = "fa-users")```
### 總崩潰率
```{r}valueBox('0.01%', icon = "fa-bug")```
Row {.tabset data-width=350}-----------------------------------------------------------------------
### Newer
```{r}library(ggplot2)library(ggthemes)mydata <- data.frame( Date = as.character(seq.Date(from= as.Date("2019/01/01",format = "%Y/%m/%d"), by = "day", length.out = 31)),Newer = round(runif(31,min = 1, max = 100)))ggplot(data = mydata, aes(x = Date, y = Newer)) + geom_bar(stat = 'identity') +theme_economist() + theme(axis.text.x = element_text(angle = 90,size = rel(0.8)))
```
### Active
```{r}library(ggplot2)library(ggthemes)mydata_act <- data.frame( Date = as.character(seq.Date(from= as.Date("2019/01/01",format = "%Y/%m/%d"), by = "day", length.out = 31)), Activer = round(runif(31,min = 800, max = 1200)))ggplot(data = mydata_act, aes(x = Date, y = Activer, group = 1)) + geom_line(linetype = 3) +geom_point(size = 2,colour = "blue")+theme_economist() + theme(axis.text.x = element_text(angle = 90,size = rel(0.8)))```
### Avg_Time
```{r}library(ggplot2)library(ggthemes)mydata_Use_Time <- data.frame( Date = as.character(seq.Date(from= as.Date("2019/01/01",format = "%Y/%m/%d"), by = "day", length.out = 31)), Use_Time = round(runif(31,min = 50, max = 90)))ggplot(data = mydata_Use_Time, aes(x = Date, y = Use_Time, group = 1)) + geom_line(linetype = 3) +geom_point(size = 2,colour = "blue") +theme_economist() + theme(axis.text.x = element_text(angle = 90,size = rel(0.8))) + labs(y = "Use_Time(Minutes)")```
page 2===================================== ## Sidebar {.sidebar}[Page 1]
[Page 2]
## '1-Sidebar'```{r}# page2的數據,直接借用page1的了library(ggplot2)library(ggthemes)mydata_Use_Time <- data.frame( Date = as.character(seq.Date(from= as.Date("2019/01/01",format = "%Y/%m/%d"), by = "day", length.out = 31)), Use_Time = round(runif(31,min = 50, max = 90)))ggplot(data = mydata_Use_Time, aes(x = Date, y = Use_Time, group = 1)) + geom_line(linetype = 3) +geom_point(size = 2,colour = "blue") +theme_economist() + theme(axis.text.x = element_text(angle = 90,size = rel(0.8))) + labs(y = "Use_Time(Minutes)")```
——————————————