R Markdown

Tập vẽ đồ thị:

rm(list = ls())
library(rvest)
library(dplyr)
library(ggplot2)
# install.packages("readxl")
library(readxl)
databar <-  read_excel("D:\\One Drive\\OneDrive\\Box Sync Expired Account\\UMKC 2018\\SEM and HDI VN\\Comprehensive R\\Chi Dung\\2303 R training course\\data_anh_TheAnh.xlsx")


databar %>% 
  arrange(-theo_ti_giaHH) %>% 
  mutate(nganh_factor = factor(nganh, levels = nganh)) -> databar # level trong factor chính là trật tự xuất hiện
# str(databar)

# xoay dữ liệu để vẽ đồ thị
library(reshape2)
databar  %>% 
  select(-nganh) -> databar
databar_long <- melt(databar, id.vars = "nganh_factor")
ten_bien <- c("Theo giá cố định", "Theo giá hiện hành")

databar_long %>% 
  ggplot(aes(y = nganh_factor, x = value, fill = variable)) + 
  geom_col(position = "dodge") +   
  labs(title = "Mức tăng trưởng của một số ngành",
       caption = "Data source: pham.theanh@neu.edu.vn",
       y = "", 
       x = "") +
  # geom_text(aes(label = variable), hjust = 1.2, color = "white", size = 4) + # hjust để điều chỉnh vị trí chữ
  # geom_text(data = df_mint, aes(label = soluong_int), hjust = 1.2, color = "blue", size = 4) +
  theme(axis.ticks.y = element_blank()) +
  theme(axis.line.x = element_blank()) 

library(ggplot2)

# Create sample data
category <- c("Category 1", "Category 2", "Category 3", "Category 4", "Category 5")
series1 <- c(10, 15, 20, 25, 30)
series2 <- c(5, 10, 15, 20, 25)

# Combine the data into a data frame
df <- data.frame(category, series1, series2)

# Melt the data into long format
# install.packages("reshape2")
library(reshape2)
df_long <- melt(df, id.vars = "category")

# Create the bar plot using geom_col()
ggplot(df_long, aes(x = category, y = value, fill = variable)) + 
  geom_col(position = "dodge") +
  labs(title = "Bar Graph for Two Data Series",
       x = "Categories",
       y = "Values",
       fill = "") +
  theme_bw()

LS0tDQp0aXRsZTogIkLDoGkgdOG6rXAgbmfDoHkgMiINCmF1dGhvcjogIkRhaSBEdW9uZyINCmRhdGU6ICIyMDIzLTAzLTE5Ig0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMgICNjaG8gcGjDqXAgZG93bmxvYWQgdGjDrCBnaGkgeWVzDQogICAgaGlnaGxpZ2h0OiB6ZW5idXJuDQogICAgdGhlbWU6IGZsYXRseQ0KICAgIHRvYzogeWVzDQogICAgdG9jX2Zsb2F0OiB5ZXMNCiAgd29yZF9kb2N1bWVudDoNCiAgICB0b2M6IHllcw0KICBwZGZfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCi0tLQ0KDQpgYGB7ciBzZXR1cCxpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFLCB3YXJuaW5nID0gRkFMU0UsIG1lc3NhZ2UgPSBGQUxTRSwgY2FjaGUgPSBUUlVFKSAjZWNobyA9IFRSVUUgOiB2aeG6v3QgdGjhur8gbsOgbyB0aMOsIGNvZGUgaGnhu4duIHJhIG5oxrAgdGjhur87IG7hur91IGVjaG8gPSBGQUxTRSB0aMOsIGNo4buJIGhp4buHbiBr4bq/dCBxdeG6oyB2w6Aga2jDtG5nIGhp4buHbiBjb2RlOyB3YXJuaW5nID0gRkFMU0UgdGjDrCB04bqvdCBjw6FjIHdhcm5pbmcNCg0KYGBgDQoNCg0KDQoNCiMjIFIgTWFya2Rvd24NCg0KVOG6rXAgduG6vSDEkeG7kyB0aOG7izoNCg0KYGBge3IgY2Fyc30NCnJtKGxpc3QgPSBscygpKQ0KbGlicmFyeShydmVzdCkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQojIGluc3RhbGwucGFja2FnZXMoInJlYWR4bCIpDQpsaWJyYXJ5KHJlYWR4bCkNCmRhdGFiYXIgPC0gIHJlYWRfZXhjZWwoIkQ6XFxPbmUgRHJpdmVcXE9uZURyaXZlXFxCb3ggU3luYyBFeHBpcmVkIEFjY291bnRcXFVNS0MgMjAxOFxcU0VNIGFuZCBIREkgVk5cXENvbXByZWhlbnNpdmUgUlxcQ2hpIER1bmdcXDIzMDMgUiB0cmFpbmluZyBjb3Vyc2VcXGRhdGFfYW5oX1RoZUFuaC54bHN4IikNCg0KDQpkYXRhYmFyICU+JSANCiAgYXJyYW5nZSgtdGhlb190aV9naWFISCkgJT4lIA0KICBtdXRhdGUobmdhbmhfZmFjdG9yID0gZmFjdG9yKG5nYW5oLCBsZXZlbHMgPSBuZ2FuaCkpIC0+IGRhdGFiYXIgIyBsZXZlbCB0cm9uZyBmYWN0b3IgY2jDrW5oIGzDoCB0cuG6rXQgdOG7sSB4deG6pXQgaGnhu4duDQojIHN0cihkYXRhYmFyKQ0KDQojIHhvYXkgZOG7ryBsaeG7h3UgxJHhu4MgduG6vSDEkeG7kyB0aOG7iw0KbGlicmFyeShyZXNoYXBlMikNCmRhdGFiYXIgICU+JSANCiAgc2VsZWN0KC1uZ2FuaCkgLT4gZGF0YWJhcg0KZGF0YWJhcl9sb25nIDwtIG1lbHQoZGF0YWJhciwgaWQudmFycyA9ICJuZ2FuaF9mYWN0b3IiKQ0KdGVuX2JpZW4gPC0gYygiVGhlbyBnacOhIGPhu5EgxJHhu4tuaCIsICJUaGVvIGdpw6EgaGnhu4duIGjDoG5oIikNCg0KZGF0YWJhcl9sb25nICU+JSANCiAgZ2dwbG90KGFlcyh5ID0gbmdhbmhfZmFjdG9yLCB4ID0gdmFsdWUsIGZpbGwgPSB2YXJpYWJsZSkpICsgDQogIGdlb21fY29sKHBvc2l0aW9uID0gImRvZGdlIikgKyAgIA0KICBsYWJzKHRpdGxlID0gIk3hu6ljIHTEg25nIHRyxrDhu59uZyBj4bunYSBt4buZdCBz4buRIG5nw6BuaCIsDQogICAgICAgY2FwdGlvbiA9ICJEYXRhIHNvdXJjZTogcGhhbS50aGVhbmhAbmV1LmVkdS52biIsDQogICAgICAgeSA9ICIiLCANCiAgICAgICB4ID0gIiIpICsNCiAgIyBnZW9tX3RleHQoYWVzKGxhYmVsID0gdmFyaWFibGUpLCBoanVzdCA9IDEuMiwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gNCkgKyAjIGhqdXN0IMSR4buDIMSRaeG7gXUgY2jhu4luaCB24buLIHRyw60gY2jhu68NCiAgIyBnZW9tX3RleHQoZGF0YSA9IGRmX21pbnQsIGFlcyhsYWJlbCA9IHNvbHVvbmdfaW50KSwgaGp1c3QgPSAxLjIsIGNvbG9yID0gImJsdWUiLCBzaXplID0gNCkgKw0KICB0aGVtZShheGlzLnRpY2tzLnkgPSBlbGVtZW50X2JsYW5rKCkpICsNCiAgdGhlbWUoYXhpcy5saW5lLnggPSBlbGVtZW50X2JsYW5rKCkpIA0KDQoNCmxpYnJhcnkoZ2dwbG90MikNCg0KIyBDcmVhdGUgc2FtcGxlIGRhdGENCmNhdGVnb3J5IDwtIGMoIkNhdGVnb3J5IDEiLCAiQ2F0ZWdvcnkgMiIsICJDYXRlZ29yeSAzIiwgIkNhdGVnb3J5IDQiLCAiQ2F0ZWdvcnkgNSIpDQpzZXJpZXMxIDwtIGMoMTAsIDE1LCAyMCwgMjUsIDMwKQ0Kc2VyaWVzMiA8LSBjKDUsIDEwLCAxNSwgMjAsIDI1KQ0KDQojIENvbWJpbmUgdGhlIGRhdGEgaW50byBhIGRhdGEgZnJhbWUNCmRmIDwtIGRhdGEuZnJhbWUoY2F0ZWdvcnksIHNlcmllczEsIHNlcmllczIpDQoNCiMgTWVsdCB0aGUgZGF0YSBpbnRvIGxvbmcgZm9ybWF0DQojIGluc3RhbGwucGFja2FnZXMoInJlc2hhcGUyIikNCmxpYnJhcnkocmVzaGFwZTIpDQpkZl9sb25nIDwtIG1lbHQoZGYsIGlkLnZhcnMgPSAiY2F0ZWdvcnkiKQ0KDQojIENyZWF0ZSB0aGUgYmFyIHBsb3QgdXNpbmcgZ2VvbV9jb2woKQ0KZ2dwbG90KGRmX2xvbmcsIGFlcyh4ID0gY2F0ZWdvcnksIHkgPSB2YWx1ZSwgZmlsbCA9IHZhcmlhYmxlKSkgKyANCiAgZ2VvbV9jb2wocG9zaXRpb24gPSAiZG9kZ2UiKSArDQogIGxhYnModGl0bGUgPSAiQmFyIEdyYXBoIGZvciBUd28gRGF0YSBTZXJpZXMiLA0KICAgICAgIHggPSAiQ2F0ZWdvcmllcyIsDQogICAgICAgeSA9ICJWYWx1ZXMiLA0KICAgICAgIGZpbGwgPSAiIikgKw0KICB0aGVtZV9idygpDQpgYGANCg0K