Biểu đồ tạp hợp venn
set.seed(20190708)
genes <- paste("gene",1:1000,sep="")
x <- list(
A = sample(genes,300),
B = sample(genes,525),
C = sample(genes,440),
D = sample(genes,350)
)
library("ggVennDiagram")
ggVennDiagram(x)

# Remove labels background color
ggVennDiagram(x, label_alpha = 0)

# Change category names
# Change the gradient fill color
ggVennDiagram(
x, label_alpha = 0,
category.names = c("Stage 1","Stage 2","Stage 3", "Stage4")
) +
ggplot2::scale_fill_gradient(low="blue",high = "red")

ggVennDiagram(x[1:3], label_alpha = 0) + ggplot2::scale_fill_gradient(low="green",high = "red")

ggVennDiagram(x[1:2], label_alpha = 0)

2 Đồ thị bảng
library(ggplot2)
library(treemapify)
dulieu <- read.csv("https://raw.githubusercontent.com/selva86/datasets/master/proglanguages.csv")
dulieu <- as.data.frame(dulieu)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
dulieu2 <- dulieu %>% mutate(Nhom = ifelse(value <100,"Lớn","Nhỏ"))
dulieu <- dulieu %>% filter(value >100)
head(dulieu)
## id value parent rank
## 1 Java (general) 423 Java 40
## 2 PHP (general) 253 PHP 39
## 3 dotNet (general) 220 dotNet 38
## 4 Python (general) 219 Python 37
## 5 AngularJS 185 JavaScript 36
## 6 Django 121 Python 35
ggplot(data=dulieu, aes(area = value, fill = rank)) +
geom_treemap(linetype = "dashed", size=3, color="white") +
geom_treemap_text(aes(label = parent), colour = "white", place = "topleft", fontface = "italic", size=30) +
geom_treemap_text(aes(label = value),colour = "yellow", fontface="bold", place="center", size=50) +
scale_fill_gradient(low="green",high = "red") +
theme(legend.position="none")

3. Đồ thị bar
library(ggthemes)
ggplot(data=dulieu, aes(x=id, y=value, label=value)) +
geom_bar(stat="identity", fill="#DC241f") +
geom_label(color="#DC241f") +
labs(x="", y="") +
theme_economist() +
coord_flip()

4. Sắp xếp lại đồ thị
library("forcats") # lấy hàm fcrt_reorder
dulieu %>% mutate(bien = fct_reorder(id, desc(value))) %>%
ggplot( aes(x=bien, y=value, label=value)) +
geom_bar(stat="identity", fill="#DC241f") +
geom_label(color="#DC241f") +
labs(x="", y="") +
theme_economist() +
coord_flip()

dulieu %>%
arrange(value) %>% # First sort by val. This sort the dataframe but NOT the factor levels
mutate(bien=factor(id, levels=id)) %>% # This trick update the factor levels
ggplot( aes(x=bien, y=value, label=value)) +
geom_bar(stat="identity", fill="#DC241f") +
geom_label(color="#DC241f") +
labs(x="", y="") +
theme_economist() +
coord_flip()

5. Vẽ đồ thị phân nhóm
head(dulieu2)
## id value parent rank Nhom
## 1 Java (general) 423 Java 40 Nhỏ
## 2 PHP (general) 253 PHP 39 Nhỏ
## 3 dotNet (general) 220 dotNet 38 Nhỏ
## 4 Python (general) 219 Python 37 Nhỏ
## 5 AngularJS 185 JavaScript 36 Nhỏ
## 6 Django 121 Python 35 Nhỏ
dulieu2 %>% select(parent) %>% table()
## parent
## dotNet Java JavaScript PHP Python Ruby
## 2 12 11 11 3 1