library(xlsx)
cq <- read.xlsx("C:/Users/LULI/Downloads/globalweatherrepository.xlsx", sheetIndex=1, header=1)
table <- knitr::kable(cq, format= "markdown")

1 Giới thiệu bộ dữ liệu:

1.1 Mô tả bộ dữ liệu:

Bộ dữ liệu này cung cấp thông tin thời tiết hàng ngày cho các thủ đô trên thế giới. Khác với dữ liệu dự báo, bộ dữ liệu này cung cấp một tập hợp đầy đủ các đặc điểm phản ánh điều kiện thời tiết hiện tại trên toàn cầu. Bắt đầu từ ngày 29 tháng 8 năm 2023. Nó cung cấp hơn 40 tính năng, bao gồm nhiệt độ, gió, áp suất, lượng mưa, độ ẩm, khả năng nhìn thấy, đo lường chất lượng không khí và nhiều hơn nữa. Bộ dữ liệu này có giá trị để phân tích các mô hình thời tiết toàn cầu, khám phá xu hướng khí hậu và hiểu các mối quan hệ giữa các thông số thời tiết khác nhau.

1.2 Thông tin cơ bản

  • Số lượng dữ liệu: Bộ dữ liệu thường chứa khoảng 1701 dòng (bản ghi) và 35 cột (biến).

  • Thuộc tính (biến):

  • Country: Quốc gia của dữ liệu thời tiết

  • location_name: Tên của địa điểm (thành phố)

  • latitude: Tọa độ vĩ độ của địa điểm

  • longitude: Tọa độ kinh độ của địa điểm

  • timezone: Múi giờ của địa điểm

  • last_updated_epoch: Unix timestamp của cập nhật dữ liệu cuối cùng

  • last_updated: Thời gian địa phương của cập nhật dữ liệu cuối cùng

  • temperature_celsius: Nhiệt độ theo độ Celsius

  • temperature_fahrenheit: Nhiệt độ theo độ Fahrenheit

  • condition_text: Mô tả tình trạng thời tiết

  • wind_mph: Tốc độ gió tính bằng dặm mỗi giờ

  • wind_kph: Tốc độ gió tính bằng kilomet mỗi giờ

  • wind_degree: Hướng gió tính bằng độ

  • wind_direction Hướng gió được biểu thị dưới dạng la bàn 16 điểm

  • pressure_mb: Áp suất tính bằng milibar

  • pressure_in: Áp suất tính bằng inch

  • precip_mm: Lượng mưa tính bằng milimét

  • precip_in: Lượng mưa tính bằng inch

  • humidity: Độ ẩm tính bằng phần trăm

  • cloud: Mây che phủ tính bằng phần trăm

  • feels_like_celsius: Nhiệt độ cảm nhận theo độ Celsius

  • feels_like_fahrenheit: Nhiệt độ cảm nhận theo độ Fahrenheit

  • visibility_km:Tầm nhìn tính bằng kilomet

-visibility_miles: Tầm nhìn tính bằng dặm

  • uv_index: Chỉ số UV cơn gió mph: Cơn gió tính bằng dặm mỗi giờ

  • gust_mph: Cơn gió tính bằng kilomet mỗi giờ

  • air_quality_Carbon_Monoxide: Đo lường chất lượng không khí: Carbon Monoxide

  • air_quality_Ozone: Đo lường chất lượng không khí: Ozone

  • air_quality_Nitrogen_dioxide: Đo lường chất lượng không khí: Nitrogen Dioxide

  • air_quality_Sulphur_dioxide: Đo lường chất lượng không khí: Sulphur Dioxide

-air_quality_PM2.5: Đo lường chất lượng không khí: PM2.5

-air_quality_PM10: Đo lường chất lượng không khí: PM10

  • air_quality_us-epa-index: Đo lường chất lượng không khí: US EPA Index

  • air_quality_gb-defra-index: Đo lường chất lượng không khí: GB DEFRA Index

  • sunrise: Thời gian địa phương mặt trời mọc

  • sunset: Thời gian địa phương mặt trời lặn

  • moonrise: Thời gian địa phương mặt trăng mọc

  • moonset: Thời gian địa phương mặt trăng lặn

  • moon_phase: Pha mặt trăng hiện tại

0moon_illumination: Tỷ lệ chiếu sáng của mặt trăng

1.3 Cài và Load bộ dữ liệu vào R

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
library(ggplot2)
library(scales)

Giải thích câu lệnh

  • library(pplot2): Dòng này sẽ tải và kích hoạt gói phần mềm “dplyr” trong môi trường R.

  • library(pplot2): Dòng này sẽ tải gói “ggplot2” vào bộ nhớ để sử dụng bất kỳ chức năng nào từ ggplot2.GGplot2 là một gói phổ biến trong R để tạo và tinh chỉnh các biểu đồ và đồ thị.

  • library(scales): Dòng này tải gói “scales” vào bộ nhớ làm việc. “Scales” là một gói trong “tidyverse” được sử dụng để tạo và tùy chỉnh các biểu đồ.

2 Thực hiện thao tác vẽ biểu đồ

vì dữ liệu là quá dài nên ta thực hiện lọc ra dữ liệu của 4 quốc gia China, Thailand, Cuba và chile và lấy dữ liệu từ 4 hàng đầu

q <- cq %>% filter(country %in% c('China','Thailand','Cuba','Chile'))
table<- knitr::kable(q, format= "markdown")
table
country location_name latitude longitude timezone last_updated_epoch temperature_celsius temperature_fahrenheit condition_text wind_mph wind_kph wind_degree wind_direction pressure_mb pressure_in precip_mm precip_in humidity cloud feels_like_celsius feels_like_fahrenheit visibility_km visibility_miles uv gust_mph gust_kph air_quality_Carbon_Monoxide air_quality_Ozone air_quality_Nitrogen_dioxide air_quality_Sulphur_dioxide air_quality_PM2.5 air_quality_PM10 air_quality_us.epa.index air_quality_gb.defra.index moon_illumination
Chile Santiago -33.45 -70.67 America/Santiago 1693301400 5 41.0 Clear 3.8 6.1 40 NE 1021 30.15 0.0 0.00 87 0 3.6 38.4 10.0 6 1 8.5 13.7 5500.8 0.0 57.6 16.2 496.2 596.9 6 10 93
China Beijing 39.93 116.39 Asia/Shanghai 1693301400 28 82.4 Sunny 4.3 6.8 50 NE 1010 29.83 0.0 0.00 37 0 28.2 82.7 10.0 6 7 11.2 18.0 420.6 140.2 56.9 76.3 26.2 34.3 2 3 93
Cuba Havana 23.13 -82.36 America/Havana 1693301400 26 78.8 Partly cloudy 9.4 15.1 160 SSE 1007 29.74 0.0 0.00 100 75 28.9 84.0 9.0 5 1 34.0 54.7 277.0 24.3 5.2 14.4 2.6 3.1 1 1 93
Thailand Nan 18.78 100.78 Asia/Bangkok 1693302300 33 91.4 Partly cloudy 2.2 3.6 172 S 1003 29.62 4.8 0.19 63 25 51.4 124.6 10.0 6 6 2.9 4.7 327.1 29.0 4.4 3.9 8.3 9.2 1 1 93
Thailand Bangkok 13.75 100.52 Asia/Bangkok 1693302300 33 91.4 Partly cloudy 6.9 11.2 240 WSW 1003 29.62 0.1 0.00 56 50 37.6 99.6 10.0 6 7 14.1 22.7 687.6 8.3 26.1 19.1 10.0 19.9 1 1 93
Chile Santiago -33.45 -70.67 America/Santiago 1693363500 13 55.4 Clear 10.5 16.9 190 S 1019 30.09 0.0 0.00 58 0 13.6 56.4 10.0 6 1 3.8 6.1 6568.9 0.0 52.8 7.6 537.3 644.5 6 10 98
China Beijing 39.93 116.39 Asia/Shanghai 1693364400 29 84.2 Sunny 2.2 3.6 120 ESE 1013 29.91 0.0 0.00 43 0 28.8 83.8 10.0 6 7 0.9 1.4 1335.1 31.5 154.9 167.9 150.9 186.0 5 10 98
Cuba Havana 23.13 -82.36 America/Havana 1693364400 27 80.6 Partly cloudy 9.4 15.1 200 SSW 1010 29.83 0.0 0.00 100 75 31.2 88.1 8.0 4 1 28.0 45.0 287.1 20.6 6.4 17.9 5.3 6.2 1 1 98
Thailand Nan 18.78 100.78 Asia/Bangkok 1693364400 26 78.8 Partly cloudy 2.2 3.6 149 SSE 1008 29.77 1.8 0.07 94 75 30.6 87.1 10.0 6 5 1.1 1.8 343.8 7.0 3.6 0.8 4.1 4.7 1 1 98
Thailand Bangkok 13.75 100.52 Asia/Bangkok 1693364400 31 87.8 Partly cloudy 4.3 6.8 210 SSW 1008 29.77 0.0 0.00 71 25 34.9 94.8 10.0 6 8 6.9 11.2 1014.7 2.9 23.7 24.8 16.0 34.3 2 2 98
Chile Santiago -33.45 -70.67 America/Santiago 1693439100 14 57.2 Clear 8.1 13.0 220 SW 1019 30.09 0.0 0.00 63 0 14.6 58.2 10.0 6 1 4.3 6.8 2990.7 3.4 56.2 7.8 180.3 232.6 5 10 98
China Beijing 39.93 116.39 Asia/Shanghai 1693439100 21 69.8 Sunny 4.3 6.8 10 N 1010 29.83 0.2 0.01 94 0 21.0 69.8 10.0 6 4 5.8 9.4 1121.5 0.2 33.6 38.6 142.2 171.5 4 10 98
Cuba Havana 23.13 -82.36 America/Havana 1693439100 31 87.8 Partly cloudy 10.5 16.9 220 SW 1011 29.85 0.0 0.00 71 50 41.9 107.4 9.0 5 7 15.7 25.2 360.5 28.6 7.2 18.4 5.4 8.5 1 1 98
Thailand Nan 18.78 100.78 Asia/Bangkok 1693439100 25 77.0 Partly cloudy 2.5 4.0 40 NE 1007 29.74 0.2 0.01 100 75 28.5 83.3 10.0 6 1 2.5 4.0 370.5 19.1 0.9 0.1 3.0 3.1 1 1 98
Thailand Bangkok 13.75 100.52 Asia/Bangkok 1693439100 27 80.6 Partly cloudy 3.8 6.1 120 ESE 1007 29.74 0.1 0.00 94 50 31.4 88.6 7.0 4 1 6.9 11.2 974.7 0.0 16.6 22.9 21.9 43.8 2 2 98
Chile Santiago -33.45 -70.67 America/Santiago 1693525500 16 60.8 Partly cloudy 2.2 3.6 236 WSW 1013 29.91 0.0 0.00 55 75 16.0 60.8 10.0 6 1 9.8 15.8 2456.7 2.2 49.4 6.3 141.2 184.5 4 10 100
China Beijing 39.93 116.39 Asia/Shanghai 1693525500 21 69.8 Sunny 4.3 6.8 340 NNW 1015 29.97 0.0 0.00 88 0 21.0 69.8 10.0 6 6 4.9 7.9 1548.8 0.0 54.2 73.4 372.8 409.9 6 10 100
Cuba Havana 23.13 -82.36 America/Havana 1693525500 31 87.8 Partly cloudy 4.3 6.8 220 SW 1013 29.91 0.0 0.00 75 50 43.6 110.5 9.0 5 7 4.9 7.9 460.6 29.0 13.0 32.9 10.5 12.9 1 1 100
Thailand Nan 18.78 100.78 Asia/Bangkok 1693525500 24 75.2 Partly cloudy 2.2 3.6 10 N 1007 29.74 1.0 0.04 100 75 26.9 80.4 6.0 3 1 2.5 4.0 387.2 1.7 3.4 0.7 10.6 11.0 1 1 100
Thailand Bangkok 13.75 100.52 Asia/Bangkok 1693525500 27 80.6 Partly cloudy 5.6 9.0 240 WSW 1007 29.74 0.0 0.00 89 25 29.3 84.8 10.0 6 1 7.4 11.9 1442.0 0.0 18.7 23.4 39.7 77.9 2 4 100
Chile Santiago -33.45 -70.67 America/Santiago 1693611000 13 55.4 Overcast 5.6 9.0 170 S 1016 30.00 0.0 0.00 62 100 13.6 56.4 10.0 6 1 1.8 2.9 2937.3 1.5 71.3 12.9 146.6 192.3 4 10 99
China Beijing 39.93 116.39 Asia/Shanghai 1693611000 21 69.8 Sunny 2.2 3.6 48 NE 1013 29.91 0.0 0.00 94 0 21.0 69.8 10.0 6 6 2.5 4.0 2697.0 0.0 37.7 49.1 342.2 397.8 6 10 99
Cuba Havana 23.13 -82.36 America/Havana 1693611000 31 87.8 Partly cloudy 9.4 15.1 80 E 1015 29.97 0.0 0.00 71 25 44.9 112.8 9.0 5 7 21.3 34.2 360.5 35.1 4.2 10.1 3.6 6.7 1 1 99
Thailand Nan 18.78 100.78 Asia/Bangkok 1693611000 26 78.8 Partly cloudy 4.3 6.8 210 SSW 1005 29.68 0.8 0.03 94 75 30.6 87.1 10.0 6 1 2.5 4.0 367.2 21.5 1.4 2.1 12.8 12.9 1 2 99
Thailand Bangkok 13.75 100.52 Asia/Bangkok 1693611900 28 82.4 Partly cloudy 5.6 9.0 230 SW 1005 29.68 0.6 0.02 74 75 33.6 92.5 10.0 6 1 6.3 10.1 701.0 0.0 12.0 13.5 15.9 43.2 2 2 99
Chile Santiago -33.45 -70.67 America/Santiago 1693698300 12 53.6 Partly cloudy 4.3 6.8 220 SW 1013 29.91 0.3 0.01 82 75 12.5 54.4 10.0 6 1 3.1 5.0 1228.3 65.1 30.5 26.9 98.0 109.0 4 10 94
China Beijing 39.93 116.39 Asia/Shanghai 1693698300 22 71.6 Sunny 4.3 6.8 360 N 1010 29.83 0.4 0.02 100 0 24.5 76.1 8.0 4 5 5.6 9.0 1762.4 0.0 36.7 37.2 206.8 240.1 5 10 94
Cuba Havana 23.13 -82.36 America/Havana 1693698300 30 86.0 Partly cloudy 10.5 16.9 40 NE 1015 29.97 0.0 0.00 75 75 37.9 100.1 9.0 5 7 19.0 30.6 293.7 67.2 5.4 6.5 7.1 9.5 1 1 94
Thailand Nan 18.78 100.78 Asia/Bangkok 1693698300 23 73.4 Sunny 2.5 4.0 20 NNE 1005 29.68 0.0 0.00 100 0 25.5 78.0 10.0 6 1 3.4 5.4 337.1 4.7 1.2 0.2 6.7 6.8 1 1 94
Thailand Bangkok 13.75 100.52 Asia/Bangkok 1693698300 28 82.4 Partly cloudy 8.1 13.0 230 SW 1004 29.65 0.2 0.01 74 25 33.2 91.7 10.0 6 1 6.9 11.2 660.9 0.0 9.1 12.4 15.8 44.1 2 2 94
Chile Santiago -33.45 -70.67 America/Santiago 1693783800 14 57.2 Partly cloudy 10.5 16.9 220 SW 1020 30.12 0.2 0.01 72 75 14.4 57.9 10.0 6 1 4.0 6.5 4112.2 0.0 48.0 11.9 248.1 296.1 5 10 88
China Beijing 39.93 116.39 Asia/Shanghai 1693783800 23 73.4 Mist 2.2 3.6 10 N 1012 29.88 0.0 0.00 100 0 25.2 77.3 2.8 1 6 4.0 6.5 1709.0 0.1 16.5 36.7 251.9 279.3 6 10 88
Cuba Havana 23.13 -82.36 America/Havana 1693783800 30 86.0 Partly cloudy 16.1 25.9 60 ENE 1012 29.88 0.0 0.00 55 25 38.0 100.4 9.0 5 7 21.0 33.8 212.0 90.1 2.4 6.0 4.1 9.7 1 1 88
Thailand Nan 18.78 100.78 Asia/Bangkok 1693783800 24 75.2 Sunny 2.2 3.6 10 N 1004 29.65 1.6 0.06 100 0 26.9 80.4 10.0 6 1 1.3 2.2 397.2 1.5 2.0 0.3 15.1 16.0 1 2 88
Thailand Bangkok 13.75 100.52 Asia/Bangkok 1693783800 28 82.4 Partly cloudy 2.2 3.6 235 SW 1003 29.62 0.0 0.00 84 25 32.4 90.4 10.0 6 1 9.2 14.8 4592.9 0.0 27.4 43.4 162.1 219.1 5 10 88
Chile Santiago -33.45 -70.67 America/Santiago 1693870200 12 53.6 Partly cloudy 5.6 9.0 180 S 1021 30.15 0.0 0.00 82 75 12.5 54.4 10.0 6 1 2.2 3.6 8972.2 0.0 84.3 39.1 577.3 674.3 6 10 79
China Beijing 39.93 116.39 Asia/Shanghai 1693870200 25 77.0 Mist 2.2 3.6 89 E 1015 29.97 0.0 0.00 94 0 27.2 81.0 2.8 1 6 4.0 6.5 2109.5 0.0 29.1 45.8 607.7 661.5 6 10 79
Cuba Havana 23.13 -82.36 America/Havana 1693870200 30 86.0 Partly cloudy 9.4 15.1 50 NE 1012 29.88 1.1 0.04 66 75 39.3 102.7 9.0 5 6 22.4 36.0 250.3 72.2 7.4 22.4 6.3 10.9 1 1 79
Thailand Nan 18.78 100.78 Asia/Bangkok 1693870200 25 77.0 Partly cloudy 2.2 3.6 83 E 1006 29.71 0.7 0.03 100 25 28.5 83.3 10.0 6 1 1.8 2.9 397.2 8.6 1.7 0.4 9.9 10.2 1 1 79
Thailand Bangkok 13.75 100.52 Asia/Bangkok 1693870200 28 82.4 Partly cloudy 6.9 11.2 220 SW 1005 29.68 0.1 0.00 74 25 32.4 90.3 10.0 6 1 5.6 9.0 948.0 0.0 16.6 21.9 20.5 39.0 2 2 79
Chile Santiago -33.45 -70.67 America/Santiago 1693955700 12 53.6 Mist 3.8 6.1 320 NW 1016 30.00 0.0 0.00 88 75 12.5 54.4 5.0 3 1 2.5 4.0 8010.9 0.1 127.5 18.1 814.3 937.5 6 10 70
China Beijing 39.93 116.39 Asia/Shanghai 1693955700 24 75.2 Mist 2.2 3.6 41 NE 1016 30.00 0.0 0.00 100 0 25.8 78.4 2.8 1 6 4.0 6.5 1789.1 0.1 36.0 58.7 360.0 412.1 6 10 70
Cuba Havana 23.13 -82.36 America/Havana 1693955700 30 86.0 Partly cloudy 9.4 15.1 60 ENE 1014 29.94 0.0 0.00 75 50 37.5 99.5 9.0 5 7 18.3 29.5 474.0 43.3 29.5 96.3 25.2 27.8 2 3 70
Thailand Nan 18.78 100.78 Asia/Bangkok 1693955700 25 77.0 Light rain 2.2 3.6 147 SSE 1008 29.77 1.4 0.06 94 75 28.6 83.5 8.0 4 1 0.4 0.7 440.6 5.0 1.5 0.2 5.2 5.4 1 1 70
q <-head(q,4)

2.1 Biểu đồ barchart thể hiện Tốc độ gió tính bằng dặm mỗi giờ

q %>% ggplot(aes(x =wind_mph)) +
    geom_bar() +
    labs(x = 'Tốc độ gió tính bằng dặm mỗi giờ', y = 'n')

  • q %>% ggplot(aes(x = wind_mph)): Đây là phần cơ bản của lệnh, trong đó q là dữ liệu đầu vào. Dữ liệu được chuyển vào hàm ggplot() để tạo ra một biểu đồ. aes(x = wind_mph) chỉ định rằng trục hoành của biểu đồ sẽ sử dụng dữ liệu từ cột wind_mph.

  • geom_bar(): Đây là lớp hình học được sử dụng để vẽ biểu đồ cột. Nó biểu diễn dữ liệu bằng các cột với độ cao tương ứng với tần suất của mỗi giá trị.

  • labs(x = ‘Tốc độ gió tính bằng dặm mỗi giờ’, y = ‘n’): Lệnh này đặt nhãn cho trục x và trục y của biểu đồ. Trục x được gán nhãn là “Tốc độ gió tính bằng dặm mỗi giờ”, và trục y được gán nhãn là “n”. Lệnh này tạo ra một biểu đồ cột để biểu diễn phân phối của tốc độ gió tính bằng dặm mỗi giờ từ dữ liệu q.

2.2 Biểu đồ thể hiện Tốc độ gió tính bằng dặm mỗi giờ với hoán đổi vị trí trục x, y

q %>% ggplot(aes(x =wind_mph)) +
    geom_bar() +
    labs(x = 'Tốc độ gió tính bằng dặm mỗi giờ', y = 'n')+
coord_flip()

Đoạn mã này tạo ra một biểu đồ cột để biểu diễn phân phối của áp suất tính bằng milibar từ dữ liệu q, cùng với số lượng mẫu tương ứng với mỗi giá trị áp suất.

2.3 Biểu đồ thể hiện áp suất tính bằng milibar

q%>% group_by(pressure_mb) %>% summarise(n = n()) %>%
  ggplot(aes(pressure_mb,n)) +
    geom_col(fill='green') +
    geom_text(aes(label = n),vjust = 2, color = 'red') +
    labs(x = 'Áp suất tính bằng milibar', y = 'n')

  • q %>% group_by(pressure_mb) %>% summarise(n = n()): Đoạn này sử dụng dplyr để nhóm dữ liệu theo giá trị của biến pressure_mb, sau đó tính tổng số lượng mẫu trong mỗi nhóm. Kết quả là một tập dữ liệu mới với hai cột là pressure_mb và n.

  • ggplot(aes(pressure_mb, n)): Hàm ggplot() khởi tạo một biểu đồ mới. aes(pressure_mb, n) chỉ định rằng trục x sẽ sử dụng dữ liệu từ cột pressure_mb, và trục y sẽ sử dụng dữ liệu từ cột n.

  • geom_col(fill=‘green’): Hàm geom_col() được sử dụng để vẽ các cột trên biểu đồ. Fill được đặt thành màu xanh lá cây, cho phép các cột được tô màu xanh lá cây.

  • geom_text(aes(label = n), vjust = 2, color = ‘red’): Hàm geom_text() được sử dụng để thêm nhãn cho mỗi cột, hiển thị số lượng mẫu tương ứng với mỗi nhóm. Label của nhãn được thiết lập thành giá trị của cột n, vjust (justification) được đặt thành 2 để căn chỉnh văn bản, và màu văn bản được đặt thành màu đỏ.

  • labs(x = ‘Áp suất tính bằng milibar’, y = ‘n’): Lệnh này đặt nhãn cho trục x và trục y của biểu đồ. Trục x được gán nhãn là “Áp suất tính bằng milibar”, và trục y được gán nhãn là “n”. Đoạn mã này tạo ra một biểu đồ cột để biểu diễn số lượng mẫu tương ứng với từng giá trị áp suất tính bằng milibar, và cũng hiển thị số lượng mẫu đó bằng văn bản màu đỏ.

2.4 Biểu đồ thể hiện phần trăm áp suất theo tọa độ vĩ độ

q %>% group_by( latitude) %>% summarise(n = n()) %>%
  ggplot(aes( latitude,n)) +
    geom_col(fill='green') +
    geom_text(aes(label = percent(n/length(q$pressure_mb))),vjust = 2, color = 'red') +
    labs(x = 'Tọa độ vĩ độ', y = 'n')

  • q %>% group_by(latitude) %>% summarise(n = n()): Dòng này sử dụng group_by() và summarise() từ gói dplyr để nhóm dữ liệu theo giá trị của biến latitude, sau đó tính tổng số lượng mẫu trong mỗi nhóm. Kết quả là một dataframe mới có hai cột là latitude và n, trong đó n là số lượng mẫu tương ứng với mỗi giá trị của latitude.

  • ggplot(aes(latitude, n)): Hàm ggplot() được sử dụng để khởi tạo một biểu đồ mới. aes(latitude, n) chỉ định rằng trục x của biểu đồ sẽ sử dụng dữ liệu từ cột latitude, và trục y sẽ sử dụng dữ liệu từ cột n.

  • geom_col(fill = ‘green’): Hàm geom_col() được sử dụng để vẽ các cột trên biểu đồ. Mỗi cột sẽ có chiều cao tương ứng với giá trị của cột n. Fill được đặt thành màu xanh lá cây, cho phép các cột được tô màu xanh lá cây.

  • geom_text(aes(label = percent(n/length(q$pressure_mb))), vjust = 2, color = ‘red’): Hàm geom_text() được sử dụng để thêm nhãn cho mỗi cột, hiển thị phần trăm của số lượng mẫu tương ứng với từng giá trị tọa độ vĩ độ. Nhãn được căn chỉnh dọc (vjust = 2) và màu văn bản được đặt thành màu đỏ.

  • labs(x = ‘Tọa độ vĩ độ’, y = ‘n’): Dòng này đặt nhãn cho trục x và trục y của biểu đồ. Trục x được gán nhãn là “Tọa độ vĩ độ”, và trục y được gán nhãn là “n”. Đoạn mã này tạo ra một biểu đồ cột để biểu diễn số lượng mẫu tương ứng với từng giá trị tọa độ vĩ độ, và cũng hiển thị phần trăm của số lượng mẫu đó bằng văn bản màu đỏ.

2.5 Biểu đồ thể hiện tốc độ gió theo tọa độ vĩ độ sử dụng facet wrap

q %>% group_by(latitude,wind_mph) %>% summarise(n=n()) %>%
  ggplot(aes(x =latitude ,y = n)) +
    geom_col(position = 'dodge') +
    facet_wrap(~wind_mph) +
    labs(x = 'Loại', y = 'Số lượng')
## `summarise()` has grouped output by 'latitude'. You can override using the
## `.groups` argument.

  • q %>% group_by(latitude, wind_mph) %>% summarise(n = n()): Dòng này sử dụng group_by() và summarise() từ gói dplyr để nhóm dữ liệu theo cặp giá trị của biến latitude và wind_mph, sau đó tính tổng số lượng mẫu trong mỗi nhóm. Kết quả là một dataframe mới có ba cột là latitude, wind_mph, và n, trong đó n là số lượng mẫu tương ứng với mỗi cặp giá trị của latitude và wind_mph.

  • ggplot(aes(x = latitude, y = n)): Hàm ggplot() được sử dụng để khởi tạo một biểu đồ mới. aes(x = latitude, y = n) chỉ định rằng trục x của biểu đồ sẽ sử dụng dữ liệu từ cột latitude, và trục y sẽ sử dụng dữ liệu từ cột n.

  • geom_col(position = ‘dodge’): Hàm geom_col() được sử dụng để vẽ các cột trên biểu đồ. Mỗi cột sẽ có chiều cao tương ứng với giá trị của cột n, và các cột sẽ được phân nhóm theo giá trị của biến wind_mph (do position = ‘dodge’).

  • facet_wrap(~ wind_mph): Hàm facet_wrap() được sử dụng để chia biểu đồ thành các panel riêng biệt dựa trên giá trị của biến wind_mph. Mỗi panel sẽ hiển thị dữ liệu cho một giá trị cụ thể của biến wind_mph.

  • labs(x = ‘Loại’, y = ‘Số lượng’): Dòng này đặt nhãn cho trục x và trục y của biểu đồ. Trục x được gán nhãn là “Loại” (ở đây có thể hiểu là “vĩ độ”), và trục y được gán nhãn là “Số lượng”. Đoạn mã này tạo ra một biểu đồ cột để biểu diễn số lượng mẫu tương ứng với từng giá trị của biến latitude, được phân nhóm theo giá trị của biến wind_mph, và hiển thị mỗi nhóm trên một panel riêng biệt trong một grid layout.

2.6 Sử dụng facet wrap để vẽ biểu đồ thể hiện tốc độ gió theo tọa độ vĩ độ với số liệu ghi trên cột

q %>% group_by(latitude,wind_mph) %>% summarise(n=n()) %>%
  ggplot(aes(x =latitude ,y = n)) +
    geom_col(position = 'dodge') +
    facet_wrap(~wind_mph) +
    geom_text(aes(label = n),vjust = 2, color = 'green') +
    labs(x = 'Loại', y = 'Số lượng')
## `summarise()` has grouped output by 'latitude'. You can override using the
## `.groups` argument.

Đoạn mã này tạo một biểu đồ cột để hiển thị số lượng mẫu theo từng giá trị của biến latitude, với các cột được phân nhóm theo giá trị của biến wind_mph, và mỗi nhóm được hiển thị trên một panel riêng biệt. Ngoài ra, các nhãn số liệu cũng được thêm vào mỗi cột trên biểu đồ.

  • q %>% group_by(latitude, wind_mph) %>% summarise(n = n()): Dòng này sử dụng dplyr để nhóm dữ liệu theo cặp giá trị của biến latitude và wind_mph, sau đó tính tổng số lượng mẫu trong mỗi nhóm và lưu vào cột n.

  • ggplot(aes(x = latitude, y = n)): Hàm ggplot() khởi tạo một biểu đồ mới, trong đó aes(x = latitude, y = n) chỉ định rằng trục x của biểu đồ sẽ sử dụng dữ liệu từ cột latitude, và trục y sẽ sử dụng dữ liệu từ cột n.

  • geom_col(position = ‘dodge’): geom_col() vẽ các cột trên biểu đồ. position = ‘dodge’ chỉ định rằng các cột sẽ được xếp chồng lên nhau một cách song song.

  • facet_wrap(~ wind_mph): Hàm facet_wrap() chia biểu đồ thành các panel riêng biệt dựa trên giá trị của biến wind_mph. Mỗi panel sẽ hiển thị dữ liệu cho một giá trị cụ thể của biến wind_mph.

  • geom_text(aes(label = n), vjust = 2, color = ‘green’): Hàm geom_text() thêm các nhãn số liệu lên các cột của biểu đồ, với giá trị nhãn được lấy từ cột n. vjust = 2 chỉ định vị trí dọc của nhãn, và color = ‘green’ chỉ định màu sắc của nhãn.

  • labs(x = ‘Loại’, y = ‘Số lượng’): Đặt nhãn cho trục x và trục y của biểu đồ. Trục x được gán nhãn là “Loại” (có thể là vĩ độ), và trục y được gán nhãn là “Số lượng”.

2.7 Biểu đồ thể hiện giá trị trung bình tốc độ gió theo tọa độ vĩ độ

q %>% group_by(latitude) %>% summarise(m= mean(wind_mph)) %>%
  ggplot(aes(x =latitude,y = m)) +
    geom_col(position = 'dodge') +
    geom_text(aes(label = round(m,2)), vjust = 2, color = 'green') +
    labs(x = 'Tọa độ vĩ độ', y = 'Mean')

  • q %>% group_by(latitude) %>% summarise(m= mean(wind_mph)): Dùng dplyr để nhóm dữ liệu theo giá trị của biến latitude, sau đó tính giá trị trung bình của biến wind_mph trong mỗi nhóm và lưu vào cột m.

  • ggplot(aes(x = latitude, y = m)): Khởi tạo một biểu đồ mới với aes (aesthetic) được đặt là x = latitude và y = m, tức là trục x sẽ hiển thị các giá trị của biến latitude, và trục y sẽ hiển thị giá trị trung bình của wind_mph tương ứng.

  • geom_col(position = ‘dodge’): Thêm một layer với dữ liệu cột được vẽ dựa trên latitude, với các cột được xếp chồng lên nhau.

  • geom_text(aes(label = round(m, 2)), vjust = 2, color = ‘green’): Thêm nhãn cho các cột, với giá trị là trung bình wind_mph, được làm tròn đến 2 chữ số thập phân. Nhãn được đặt ở vị trí vjust = 2 (cách trên các cột), và có màu xanh lá cây.

  • labs(x = ‘Tọa độ vĩ độ’, y = ‘Mean’): Đặt tên cho trục x là “Tọa độ vĩ độ” và trục y là “Mean” (Trung bình).

đoạn mã này tạo ra một biểu đồ cột, trong đó mỗi cột biểu diễn giá trị trung bình của wind_mph tại các giá trị khác nhau của latitude, và các nhãn được thêm vào để hiển thị giá trị trung bình của mỗi cột.

2.8 Sử dụng facet wrap để vẽ biểu đồ thể hiện giá trị trung bình lượng mây theo tọa độ vĩ độ và kinh độ

q %>% group_by(latitude,longitude) %>% summarise(m= mean(cloud)) %>%
  ggplot(aes(x =latitude,y = m)) +
    geom_col(position = 'dodge') +
  facet_wrap(~longitude)+
    geom_text(aes(label = round(m,2)), vjust = 2, color = 'green') +
    labs(x = 'Tọa độ vĩ độ', y = 'Mean')
## `summarise()` has grouped output by 'latitude'. You can override using the
## `.groups` argument.

Đoạn mã này tạo một biểu đồ cột để hiển thị số lượng mẫu theo từng giá trị của biến latitude và longitude, với các cột được phân nhóm theo giá trị của biến cloud, và mỗi nhóm được hiển thị trên một panel riêng biệt. Ngoài ra, các nhãn số liệu cũng được thêm vào mỗi cột trên biểu đồ.

2.9 Biểu đồ cột kép thể hiện phân bố lượng mây theo tọa độ vĩ độ

q <- q %>% group_by(latitude,cloud ) %>% summarise(n = n())
## `summarise()` has grouped output by 'latitude'. You can override using the
## `.groups` argument.
q %>% ggplot(aes(x = latitude, y = cloud)) +
  geom_col(data = q %>% filter(cloud > 50), fill = 'pink') +
  geom_col(data = q %>% filter(cloud < 50), fill = 'black')

  • q <- q %>% group_by(latitude,cloud ) %>% summarise(n = n()): Sử dụng group_by để nhóm dữ liệu theo các giá trị của latitude và cloud, sau đó tính số lượng các quan sát trong mỗi nhóm và lưu vào cột n.

  • q %>% ggplot(aes(x = latitude, y = cloud)): Khởi tạo một biểu đồ mới với aesthetics (mỹ phẩm) được thiết lập để trục x là latitude và trục y là cloud.

  • geom_col(data = q %>% filter(cloud > 50), fill = ‘pink’): Thêm các cột vào biểu đồ cho các quan sát có giá trị cloud lớn hơn 50, với màu nền là màu hồng.

  • geom_col(data = q %>% filter(cloud < 50), fill = ‘black’): Thêm các cột vào biểu đồ cho các quan sát có giá trị cloud nhỏ hơn 50, với màu nền là màu đen.

Điều này sẽ tạo ra một biểu đồ cột với các cột được phân tách bởi giá trị cloud. Các cột có cloud lớn hơn 50 sẽ có màu hồng, trong khi các cột có cloud nhỏ hơn 50 sẽ có màu đen.

2.10 Biểu đồ histogram thể hiện lượng mây

q %>% ggplot(aes(x = cloud)) +
  geom_histogram(binwidth = 500, fill = 'blue', color = 'red')

  • Đoạn mã trên tạo một biểu đồ histogram với trục x là dữ liệu về mây (cloud).

  • Tham số binwidth = 500 xác định kích thước của các khoảng (bins) trên trục x. Điều này có nghĩa là dữ liệu sẽ được chia thành các khoảng có độ rộng là 500. Các cột trong histogram sẽ đại diện cho số lượng quan sát trong mỗi khoảng dữ liệu.

  • Màu của cột được chỉ định bằng tham số fill = ‘blue’, trong khi màu của đường viền cột được chỉ định bằng color = ‘red’.

2.11 Sử dụng facet wrap để vẽ biểu đồ histogram thể hiện lượng mây dựa theo tọa độ vĩ độ

q %>% ggplot(aes(x = latitude)) +
  geom_histogram(binwidth = 500, fill = 'yellow', color = 'red') +
  facet_wrap(~cloud)

  • q %>% ggplot(aes(x = latitude)): Thiết lập aesthetics (mỹ phẩm) cho biểu đồ. Trục x được thiết lập là “latitude”, đại diện cho vĩ độ.

  • geom_histogram(binwidth = 500, fill = ‘yellow’, color = ‘red’): Thêm lớp histogram vào biểu đồ. Tham số binwidth xác định chiều rộng của các bin trong histogram. Màu nền của histogram được đặt là màu vàng và màu viền là màu đỏ.

  • facet_wrap(~cloud): Phân loại các biểu đồ dựa trên giá trị của biến “cloud”. Điều này tạo ra một loạt các biểu đồ, mỗi biểu đồ trong loạt hiển thị dữ liệu cho một giá trị cụ thể của “cloud”.

2.12 Biểu đồ thể hiện mật độ cuả lượng mây theo vĩ độ

q %>% ggplot(aes(x = latitude   , fill = cloud)) +
  geom_density()
## Warning: The following aesthetics were dropped during statistical transformation: fill
## ℹ This can happen when ggplot fails to infer the correct grouping structure in
##   the data.
## ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
##   variable into a factor?

  • Lệnh này tạo một biểu đồ mật độ (density plot) để khám phá phân phối của dữ liệu lượng mây (cloud) tương ứng với các giá trị vị trí vĩ độ (latitude).

  • q %>% ggplot(aes(x = latitude, fill = cloud)): Đây là phần khai báo dữ liệu và aesthetics cho biểu đồ. Dữ liệu được sử dụng là q, có thể là một tập dữ liệu chứa thông tin về lượng mây và vị trí vĩ độ của các địa điểm. Trục x được thiết lập là vĩ độ (latitude), và fill được sử dụng để phân biệt các phân phối mật độ của lượng mây.

  • geom_density(): Lớp layer này thêm một đường cong mật độ vào biểu đồ, biểu diễn phân phối của dữ liệu lượng mây tương ứng với các giá trị vị trí vĩ độ. Mỗi phân phối mật độ được tô màu khác nhau theo giá trị lượng mây, giúp phân biệt và so sánh chúng trên cùng một biểu đồ.

Kết quả là một biểu đồ mật độ màu sắc, cho phép so sánh phân phối của dữ liệu lượng mây tại các vị trí vĩ độ khác nhau.

2.13 Biểu đồ thể hiện mật độ của lượng mây

q %>% ggplot(aes(x = cloud)) +
  geom_density(fill = 'pink')

  • q %>% ggplot(aes(x = cloud)): Thiết lập aesthetics (mỹ phẩm) cho biểu đồ. Trục x được thiết lập là “cloud”, đại diện cho mức độ mây.

  • geom_density(fill = ‘pink’): Thêm lớp density plot vào biểu đồ. Density plot hiển thị phân phối xác suất của biến “cloud”. Màu nền của density plot được đặt là màu hồng, nhấn mạnh sự khác biệt giữa các vùng dữ li

  • q %>% ggplot(aes(x = temperature_celsius , fill = cloud)): Thiết lập aesthetics (mỹ phẩm) cho biểu đồ. Trục x được thiết lập là “temperature_celsius”, đại diện cho nhiệt độ tính bằng độ Celsius. Màu nền được tô cho các vùng dữ liệu dựa trên biến “cloud”, đóng vai trò như một biến phân loại.

  • geom_density(): Thêm lớp density plot vào biểu đồ. Density plot hiển thị phân phối xác suất của biến “temperature_celsius”. Mỗi màu sắc trong biểu đồ tương ứng với một phân loại của biến “cloud”, giúp thấy được phân phối của nhiệt độ theo từng loại mây.

2.14 Sử dụng facet wrap để vẽ biểu đồ thể hiện mật độ của mây theo tọa độ

q %>% ggplot(aes(x = latitude)) +
  geom_density(fill = 'green') +
  facet_wrap(~cloud)
## Warning: Groups with fewer than two data points have been dropped.
## Groups with fewer than two data points have been dropped.
## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

## Warning in max(ids, na.rm = TRUE): no non-missing arguments to max; returning
## -Inf

  • q %>% ggplot(aes(x = latitude)): Thiết lập aesthetics (mỹ phẩm) cho biểu đồ. Trục x được thiết lập là “latitude”, đại diện cho tọa độ vĩ độ.

  • geom_density(fill = ‘green’): Thêm lớp density plot vào biểu đồ. Density plot hiển thị phân phối xác suất của biến “latitude”. Màu nền được tô là màu xanh lá cây.

  • facet_wrap(~cloud): Chia nhỏ biểu đồ thành các facet dựa trên biến “cloud”. Mỗi facet tương ứng với một phân loại của biến “cloud”, và hiển thị một density plot riêng cho mỗi phân loại đó. Điều này giúp so sánh phân phối của biến “latitude” giữa các nhóm “cloud” khác nhau.

2.15 Biểu đồ Pie chart thể hiện lượng mây

q %>% group_by(cloud) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = cloud)) +
    geom_col() +
    geom_text(aes(label = n),position = position_stack(vjust = 1))

  • q %>% group_by(cloud) %>% summarise(n = n()): Tạo một bảng tổng hợp dữ liệu, nhóm theo cột “cloud” và tính tổng số lượng mỗi nhóm, lưu vào biến n.

  • ggplot(aes(x = ’’, y = n, fill = cloud)): Tạo một đối tượng ggplot với aesthetic xác định là một giá trị rỗng (để tạo ra một cột duy nhất), số lượng (n) trên trục y, và màu sắc dựa trên cột “cloud”.

  • geom_col(): Vẽ các cột dựa trên dữ liệu đã được nhóm và tổng hợp ở bước trước.

  • geom_text(aes(label = n), position = position_stack(vjust = 1)): Thêm các nhãn số lượng (n) lên trên các cột, với độ dịch dọc (vjust) được thiết lập là 1 để đặt nhãn trên đỉnh của từng cột.

Đoạn mã này sẽ tạo ra một biểu đồ cột, mỗi cột thể hiện số lượng các quan sát trong từng nhóm mây, và số lượng sẽ được hiển thị bên trên mỗi cột. Màu sắc của cột sẽ phản ánh giá trị của “cloud”, với mỗi mức độ mây có một màu riêng.

2.16 Biểu đồ tròn thể hiện độ che phủ mây

q %>% group_by(cloud) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = cloud)) +
    geom_col() +
   coord_polar('y')

  • q %>% group_by(cloud) %>% summarise(n = n()): Tạo một bảng tổng hợp dữ liệu, nhóm theo cột “cloud” và tính tổng số lượng mỗi nhóm, lưu vào biến n.

  • ggplot(aes(x = ’’, y = n, fill = cloud)): Tạo một đối tượng ggplot với aesthetic xác định là một giá trị rỗng (để tạo ra một cột duy nhất), số lượng (n) trên trục y, và màu sắc dựa trên cột “cloud”.

  • geom_col(): Vẽ các cột dựa trên dữ liệu đã được nhóm và tổng hợp ở bước trước.

  • coord_polar(‘y’): Thay đổi hệ tọa độ sang hệ tọa độ polar, giúp biểu đồ cột trở thành biểu đồ cột xoắn ốc, với mỗi cột xoắn ốc thể hiện một mức độ mây khác nhau.

2.17 Biểu đồ tròn thể hiện lượng mây với số liệu ghi trên biểu đồ

q %>% group_by(cloud) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = cloud)) +
    geom_col() +
   coord_polar('y') +     geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
    theme_void()

  • q %>% group_by(cloud) %>% summarise(n = n()): Tạo một bảng tổng hợp dữ liệu, nhóm theo cột “cloud” và tính tổng số lượng mỗi nhóm, lưu vào biến n.

  • ggplot(aes(x = ’’, y = n, fill = cloud)): Tạo một đối tượng ggplot với aesthetic xác định là một giá trị rỗng (để tạo ra một cột duy nhất), số lượng (n) trên trục y, và màu sắc dựa trên cột “cloud”.

  • geom_col(): Vẽ các cột dựa trên dữ liệu đã được nhóm và tổng hợp ở bước trước.

  • coord_polar(‘y’): Thay đổi hệ tọa độ sang hệ tọa độ polar, giúp biểu đồ cột trở thành biểu đồ cột xoắn ốc, với mỗi cột xoắn ốc thể hiện một mức độ mây khác nhau.

  • geom_text(aes(x = 1.3, label = n), position = position_stack(vjust = .5)): Thêm nhãn số lượng n lên biểu đồ, với vị trí được chỉ định là 1.3 trên trục x và được điều chỉnh để căn giữa theo chiều dọc (vjust = .5).

  • theme_void(): Loại bỏ các phần trang trí của biểu đồ, như các lưới và viền, để tạo ra một biểu đồ trắng đơn giản.

2.18 Vẽ biểu đồ scatter plot thể hiện quan hệ giữa lượng mây và vĩ độ

q %>% ggplot(aes(x =latitude , y = cloud)) +
  geom_point() +
  xlab('vĩ độ') + 
  ylab('lượng mây')

  • q %>% ggplot(aes(x = latitude, y = cloud)): Đây là phần khai báo dữ liệu và các aesthetics cho biểu đồ. Dữ liệu được sử dụng là q (có thể là một tập dữ liệu chứa thông tin về độ ẩm, nhiệt độ, v.v. của các địa điểm trên thế giới). Trục x được thiết lập là vĩ độ (latitude) và trục y là lượng mây (cloud).

  • geom_point(): Đây là lớp layer dùng để vẽ các điểm trên biểu đồ, biểu diễn thông tin về mỗi cặp giá trị vĩ độ và lượng mây.

  • xlab(‘vĩ độ’): Thiết lập nhãn cho trục x là “vĩ độ”.

  • ylab(‘lượng mây’): Thiết lập nhãn cho trục y là “lượng mây”.

Kết quả là một biểu đồ phân tán hiển thị mối quan hệ giữa vĩ độ và lượng mây tại các vị trí trên bản đồ.

2.19 Vẽ biểu đồ scatter plot thể hiện quan hệ giữa lượng mây và vĩ độ dựa trên mô hình hồi quy tuyến tính

q %>% ggplot(aes(x = cloud, y = latitude)) +
  geom_point(color = 'red') +
  geom_smooth(method = 'lm', color = 'green')
## `geom_smooth()` using formula = 'y ~ x'

  • Lệnh này tạo một biểu đồ phân tán (scatter plot) với trục x là lượng mây (cloud) và trục y là vĩ độ (latitude). Các điểm trên biểu đồ thể hiện mối quan hệ giữa lượng mây và vĩ độ của các vị trí trên bản đồ.

  • q %>% ggplot(aes(x = cloud, y = latitude)): Đây là phần khai báo dữ liệu và các aesthetics cho biểu đồ. Dữ liệu được sử dụng là q (có thể là một tập dữ liệu chứa thông tin về độ ẩm, nhiệt độ, v.v. của các địa điểm trên thế giới). Trục x được thiết lập là lượng mây (cloud) và trục y là vĩ độ (latitude).

  • geom_point(color = ‘red’): Đây là lớp layer dùng để vẽ các điểm trên biểu đồ, biểu diễn thông tin về mỗi cặp giá trị lượng mây và vĩ độ. Các điểm được tô màu đỏ.

geom_smooth(method = ‘lm’, color = ‘green’): Đây là lớp layer dùng để vẽ đường hồi quy tuyến tính trên biểu đồ, biểu diễn mối quan hệ có thể có giữa lượng mây và vĩ độ. Đường hồi quy được tô màu xanh lá cây.

Kết quả là một biểu đồ phân tán với các điểm mô tả mối quan hệ giữa lượng mây và vĩ độ, cùng với đường hồi quy tuyến tính để phản ánh xu hướng tổng quát của dữ liệu.

2.20 Biểu đồ thể hiện lượng mây và tô màu theo phân loại

q %>% ggplot(aes(x = cloud)) +
  geom_histogram(data = q %>% filter(cloud >50), binwidth = 500, fill = 'red') +
  geom_histogram(data = q %>% filter(cloud <50), binwidth = 500, fill = 'green')

  • Lệnh này tạo ra một biểu đồ histogram cho lượng mây (cloud) được chia thành hai phần, một phần cho các giá trị lượng mây lớn hơn 50 và một phần cho các giá trị lượng mây nhỏ hơn 50.

  • q %>% ggplot(aes(x = cloud)): Đây là phần khai báo dữ liệu và aesthetics cho biểu đồ. Dữ liệu được sử dụng là q, có thể là một tập dữ liệu chứa thông tin về lượng mây của các địa điểm. Trục x được thiết lập là lượng mây (cloud).

  • geom_histogram(data = q %>% filter(cloud >50), binwidth = 500, fill = ‘red’): Lớp layer này vẽ histogram cho các giá trị lượng mây lớn hơn 50. Dữ liệu cho lớp layer này được lọc từ q với điều kiện lượng mây lớn hơn 50. Độ rộng của các bin được thiết lập bằng 500. Các cột histogram được tô màu đỏ.

  • geom_histogram(data = q %>% filter(cloud <50), binwidth = 500, fill = ‘green’): Lớp layer này tương tự như lớp layer trên, nhưng vẽ histogram cho các giá trị lượng mây nhỏ hơn 50. Dữ liệu cho lớp layer này được lọc từ q với điều kiện lượng mây nhỏ hơn 50. Các cột histogram được tô màu xanh lá cây.