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