Project title
Team Name
Team Members
İbrahim Talha Özdemir
Duygu Kaya
Görkem Erarslan
Project Goal & Social Problem Addressed
Project Data & Access to Data
Actions Taken
Results and Discussion
Conclusion
References
For our project, we wanted to find reliable datas which is ethical at the same time. Therefore we have worked with data sets that we found from FAO (Food and Agriculture Organization of the United Nations) https://www.fao.org/faostat/en/#data
These data sets contains information about how much countries have agricultural land and how much they import, export food in which years. Unfortunately, we could not reach all data sets that we aimed to find due to lack of data information in Turkey. Also we have used NASA World Map data set for geospatial data https://data.nasa.gov/dataset/World-Map/7zbq-j77a.
Data sets ,that we use, contain data on different foods that are produced by different countries. There are special foods that we especially want to search if we can also produce in Turkey or not?
library(readr)
library(dplyr)
library(tidyverse)
library(sf)
library(leaflet)
library(plotly)
library(htmltools)
options(scipen=999)
We imported our datas that we need. #data-importing
agri_land_continent <- read_csv("data/FAOSTAT_agriland_continent.csv", show_col_types = FALSE)
pie_data <- agri_land_continent %>%
select(Area, Value)
From the pie chart, it can be seen that the most agricultural land in Asia.
pie_title <- sprintf("<b>Agricultural land by continent, Area</b>")
pie_data %>%
plot_ly(labels = ~Area, values = ~Value, type = 'pie',
marker = list(colors = colors,
line = list(color = '#FFFFFF', width = 1))) %>%
layout(title= pie_title, font = list(face="bold"),
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
margin = list(t=50))
data <- read_csv("data/FAOSTAT_data_agriculture.csv", show_col_types = FALSE) %>%
na_if("Unknown")
data2 <- read_csv("data/FAOSTAT_data_country.csv", show_col_types = FALSE) %>%
na_if("Unknown")
First of all, if we have missing value in our data sets, we have to omit them. That is why we checked it with is.na and we saw that there is no NA data in our data set.
data %>%
filter(is.na(data))
data2 %>%
filter(is.na(data2))
## # A tibble: 0 x 14
## # ... with 14 variables: Domain Code <chr>, Domain <chr>,
## # Area Code (FAO) <dbl>, Area <chr>, Element Code <dbl>, Element <chr>,
## # Item Code <dbl>, Item <chr>, Year Code <dbl>, Year <dbl>, Unit <chr>,
## # Value <dbl>, Flag <chr>, Flag Description <chr>
Let’s quickly see what agriculture data contains:
head(data,5)
## # A tibble: 5 x 14
## `Domain Code` Domain `Area Code (FAO~ Area `Element Code` Element `Item Code`
## <chr> <chr> <dbl> <chr> <dbl> <chr> <dbl>
## 1 RL Land ~ 2 Afgh~ 5110 Area 6610
## 2 RL Land ~ 3 Alba~ 5110 Area 6610
## 3 RL Land ~ 4 Alge~ 5110 Area 6610
## 4 RL Land ~ 5 Amer~ 5110 Area 6610
## 5 RL Land ~ 6 Ando~ 5110 Area 6610
## # ... with 7 more variables: Item <chr>, Year Code <dbl>, Year <dbl>,
## # Unit <chr>, Value <dbl>, Flag <chr>, Flag Description <chr>
Let’s check our column names with colnames function, since we have two different data sets even though they are coming from same source (FAO).
colnames(data)
colnames(data2)
## [1] "Domain Code" "Domain" "Area Code (FAO)" "Area"
## [5] "Element Code" "Element" "Item Code" "Item"
## [9] "Year Code" "Year" "Unit" "Value"
## [13] "Flag" "Flag Description"
Also our column names are string not numbers so that is what we want.
Let’s see the structure whether they are numeric or character.
str(data)
str(data2)
We can see that all characters are characters and numerical datas shown as numeric, only Unit value shown as chr but 1000 ha (hectar) is numeric but we will solve this problem later.
Our column names are same and we have to merge them.But first we have to change some column names. Since it gives an error when we write Area Code (Fao) etc. #data-cleaning-and-reshaping
tidy_data <- data %>%
rename(FlagDescription = "Flag Description") %>%
rename(AreaCode = "Area Code (FAO)") %>%
select(Item, Area, Year, Unit, Value, FlagDescription) %>%
filter(FlagDescription %in% c("Official data reported on FAO Questionnaires from countries",
"Calculated data",
"Data reported on country official publications or web sites (Official) or trade country files"))
Also we selected columns that we need only.
After we merged them, we created a new column which is called ratio, to find ratio between agricultural land and country area.
tidy_datas <- data2 %>%
select(Area, Item, Value, "Flag Description") %>%
merge(tidy_data, by="Area") %>%
mutate(Ratio = Value.y / Value.x) %>%
arrange(Area)
We downloaded the “world map” data set from NASA, because we wanted to show the data we obtained from different countries about agricultural land/country land on the map. But some of the countries are written differently on the world map data set according to our data sets. For matching and binding both our data sets and world map data set, we changed some of the names of countries. #data-visualizing
# World geospatial data
library(sf)
worldmap <- st_read("data/WorldMap/geo_export_25d0fbb2-27ed-4ccc-bfae-61c37f2abd5f.shp")%>%
arrange(name) %>%
rename(Area= "name")
Since they are not in the same order we adjust inconsistencies.
tidy_datas$Area[tidy_datas$Area == "China, Taiwan Province of"] <- "Taiwan"
tidy_datas$Area[tidy_datas$Area == "China, Hong Kong SAR"] <- "China"
tidy_datas$Area[tidy_datas$Area == "Czechia"] <- "Czech Republic"
tidy_datas$Area[tidy_datas$Area == "Falkland Islands (Malvinas)"] <- "Falkland Islands"
tidy_datas$Area[tidy_datas$Area == "French Guyana"] <- "French Guiana"
tidy_datas$Area[tidy_datas$Area == "Guinea-Bissau"] <- "Guinea Bissau"
tidy_datas$Area[tidy_datas$Area == "North Macedonia"] <- "Macedonia"
tidy_datas$Area[tidy_datas$Area == "Republic of Moldova"] <- "Moldova"
tidy_datas$Area[tidy_datas$Area == "Serbia"] <- "Republic of Serbia"
tidy_datas$Area[tidy_datas$Area == "United Kingdom of Great Britain and Northern Ireland"] <- "United Kingdom"
tidy_datas <-tidy_datas %>%
arrange(Area)
tidy_datas1 <- tidy_datas %>%
slice(-c(28,42,43,44,54,57,58))
Now, merge data sets by Area column first.
merge_data <- tidy_datas1 %>%
merge(worldmap, by="Area")
Let’s check if class is sf or not
class(worldmap)
## [1] "sf" "data.frame"
They are in the same order, now. “Afganistan” = “Afganistan”
cbind(merge_data$Area, tidy_datas1$Area)
## [,1] [,2]
## [1,] "Afghanistan" "Afghanistan"
## [2,] "Albania" "Albania"
## [3,] "Armenia" "Armenia"
## [4,] "Australia" "Australia"
## [5,] "Austria" "Austria"
## [6,] "Azerbaijan" "Azerbaijan"
## [7,] "Belarus" "Belarus"
## [8,] "Belgium" "Belgium"
## [9,] "Bosnia and Herzegovina" "Bosnia and Herzegovina"
## [10,] "Bulgaria" "Bulgaria"
## [11,] "China" "China"
## [12,] "Colombia" "Colombia"
## [13,] "Croatia" "Croatia"
## [14,] "Cuba" "Cuba"
## [15,] "Cyprus" "Cyprus"
## [16,] "Czech Republic" "Czech Republic"
## [17,] "Denmark" "Denmark"
## [18,] "Ecuador" "Ecuador"
## [19,] "Estonia" "Estonia"
## [20,] "Falkland Islands" "Falkland Islands"
## [21,] "Finland" "Finland"
## [22,] "France" "France"
## [23,] "French Guiana" "French Guiana"
## [24,] "Gabon" "Gabon"
## [25,] "Germany" "Germany"
## [26,] "Ghana" "Ghana"
## [27,] "Greenland" "Greenland"
## [28,] "Guinea Bissau" "Guinea Bissau"
## [29,] "Guyana" "Guyana"
## [30,] "Hungary" "Hungary"
## [31,] "Ireland" "Ireland"
## [32,] "Italy" "Italy"
## [33,] "Japan" "Japan"
## [34,] "Kyrgyzstan" "Kyrgyzstan"
## [35,] "Latvia" "Latvia"
## [36,] "Liberia" "Liberia"
## [37,] "Lithuania" "Lithuania"
## [38,] "Luxembourg" "Luxembourg"
## [39,] "Macedonia" "Macedonia"
## [40,] "Malta" "Malta"
## [41,] "Mexico" "Mexico"
## [42,] "Moldova" "Moldova"
## [43,] "Mongolia" "Mongolia"
## [44,] "Montenegro" "Montenegro"
## [45,] "Mozambique" "Mozambique"
## [46,] "Myanmar" "Myanmar"
## [47,] "Netherlands" "Netherlands"
## [48,] "New Zealand" "New Zealand"
## [49,] "Nigeria" "Nigeria"
## [50,] "Norway" "Norway"
## [51,] "Poland" "Poland"
## [52,] "Republic of Serbia" "Republic of Serbia"
## [53,] "Romania" "Romania"
## [54,] "Slovakia" "Slovakia"
## [55,] "Slovenia" "Slovenia"
## [56,] "Spain" "Spain"
## [57,] "Suriname" "Suriname"
## [58,] "Sweden" "Sweden"
## [59,] "Switzerland" "Switzerland"
## [60,] "Taiwan" "Taiwan"
## [61,] "Turkey" "Turkey"
## [62,] "Ukraine" "Ukraine"
## [63,] "United Kingdom" "United Kingdom"
Let’s keep the name same.
tidy_datas1[,"Area"] <- merge_data[,"Area"]
Finally, to obtain an interactive map, we create merge_data_sf which contains coordinate system.
Convert a foreign object to an sf object
Next we convert our data frame to a spatial data frame using the st_as_sf() function.
library(sf)
merge_data_sf <- st_as_sf(merge_data) # convert to spatial data frame
class(merge_data_sf)
## [1] "sf" "data.frame"
In sf, we can use the function st_crs() to check the CRS used in one data.
library(sf)
st_crs(merge_data_sf)
worldmap2 <- st_transform(merge_data_sf, crs = 4326)
pal_col <- colorFactor(c("#ca69e3", "#a953dd", "#9e36d2", "#9c0fbf", "#8d0a9d"),
domain = merge_data_sf$Ratio)
labels <- sprintf("<strong>%s</strong><br/> Agriculture Land/Country Area = %s ", merge_data_sf$Area, merge_data_sf$Ratio)%>%
lapply(htmltools::HTML) #converts it into a HTML content
We plot map with using leaflet() function.
worlddmap <- merge_data_sf %>%
leaflet() %>%
addPolygons(color="white", fillColor = ~pal_col(merge_data_sf$Ratio),
weight=1,
fillOpacity = 0.7,
label = labels) %>%
addTiles()
worlddmap
data_b <- read_csv("data/FAOSTAT_data_production_of_bluberries.csv", show_col_types = FALSE)
data_b <- data_b %>%
arrange(-Value)
Firstly, we prefer the pie chart to see total production share of Blueberries by region (1994-2020). Then with bar chart, we plot top 10 producer countries in year 2019.
Now, with the help of our graphs, we can see Turkey is not in top 10.
share_of_bluberries <- read_csv("data/FAOSTAT_share_of_bluberry.csv", show_col_types = FALSE)
pie_title <- sprintf("<b>Production share of Blueberries by region</b>")
share_of_bluberries %>%
plot_ly(labels = ~Area, values = ~Value, type = 'pie',
marker = list(colors = colors,
line = list(color = '#767EED', width = 1))) %>%
layout(title= pie_title, font = list(face="bold"),
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
margin = list(t=50))
data_b2 <- data_b %>%
mutate(Area=fct_reorder(Area,-Value)) %>%
ggplot(data_b, mapping = aes(x=Area, y=Value)) +
geom_bar(stat="identity", fill = "#820bbb", color = "black", size = 0.5) +
labs(title= "Production of Blueberries: top 10 producers",
x = "Countries", fontface="italic",
y = "Tonnes of Blueberries")+
theme_bw() +
theme(plot.title = element_text(size=13, color= "black"),
axis.text.y = element_text(face = "bold"),
axis.text.x = element_text(face = "bold", angle=45, vjust=1, hjust=1),
panel.background = element_rect("#Fcfeff"))
#ggplotly() function make the graph interactive.
ggplotly(data_b2)
production_of_raspberries <- read_csv("data/FAOSTAT_data_production_of_raspberries.csv", show_col_types = FALSE)
share_of_raspberries <- read_csv("data/FAOSTAT_share_of_raspberries.csv", show_col_types = FALSE)
pie_title <- sprintf("<b>Production share of Raspberries by region</b>")
share_of_raspberries %>%
plot_ly(labels = ~Area, values = ~Value, type = 'pie',
marker = list(colors = colors,
line = list(color = '#767EED', width = 1))) %>%
layout(title= pie_title, font = list(face="bold"),
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
margin = list(t=50))
raspberry <- production_of_raspberries %>%
mutate(Area=fct_reorder(Area,-Value)) %>%
ggplot(data_b, mapping = aes(x=Area, y=Value)) +
geom_bar(stat='identity', fill = "#f90064", color = "red", size = 0.5) +
labs(title= "Production of Raspberries: top 10 producers",
x = "Countries",
y = "Tonnes of Raspberries")+
theme_bw() +
theme(plot.title = element_text(size=16, color= "red"),
axis.text.y = element_text(face = "bold"),
axis.text.x = element_text(angle=45, vjust=1, hjust=1))
ggplotly(raspberry)
production_of_cashewnuts <- read_csv("data/FAOSTAT_production_of_cashewnuts.csv", show_col_types = FALSE)
share_of_cashewnuts <- read_csv("data/FAOSTAT_share_of_cashewnuts.csv", show_col_types = FALSE)
pie_title <- sprintf("<b>Production share of Cashewnuts by region</b>")
share_of_cashewnuts %>%
plot_ly(labels = ~Area, values = ~Value, type = 'pie',
marker = list(colors = colors,
line = list(color = '#767EED', width = 1))) %>%
layout(title= pie_title, font = list(face="bold"),
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
margin = list(t=50))
cashew <- production_of_cashewnuts %>%
mutate(Area=fct_reorder(Area,-Value)) %>%
ggplot(data_b, mapping = aes(x=Area, y=Value)) +
geom_bar(stat='identity', fill = "#bd8b67", color = "#855738", size = 0.5) +
labs(title= "Production of Cashewnuts: top 10 producers",
x = "Countries", hjust= 0.6, vjust=1, angle=270, fontface="italic",
y = "Tonnes of Cashewnuts")+
theme_bw() +
theme(plot.title = element_text(size=16, color= "brown"),
axis.text.y = element_text(face = "bold"),
axis.text.x = element_text(face = "bold", angle=45, vjust=1, hjust=1))
ggplotly(cashew)
production_of_avocados <- read_csv("data/FAOSTAT_production_of_avocados.csv", show_col_types = FALSE)
share_of_avocados <- read_csv("data/FAOSTAT_share_of_avocados.csv", show_col_types = FALSE)
pie_title <- sprintf("<b>Production share of Avocados by region</b>")
share_of_avocados %>%
plot_ly(labels = ~Area, values = ~Value, type = 'pie',
marker = list(colors = colors,
line = list(color = '#767EED', width = 1))) %>%
layout(title= pie_title, font = list(face="bold"),
xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
margin = list(t=50))
avocado <- production_of_avocados %>%
mutate(Area=fct_reorder(Area,-Value)) %>%
ggplot(data_b, mapping = aes(x=Area, y=Value)) +
geom_bar(stat='identity', fill = "#567303", color = "#445b11", size = 0.5) +
labs(title= "Production of Avocados: top 10 producers",
x = "Countries",
y = "Tonnes of Avocados")+
theme_bw() +
theme(plot.title = element_text(size=16, color= "#1f8439"),
axis.text.y = element_text(face = "bold"),
axis.text.x = element_text(face = "bold", angle=45, vjust=1, hjust=1))
ggplotly(avocado)
avocados_turkey <- read_csv("data/FAOSTAT_turkey_avocados.csv", show_col_types = FALSE)
avocados_turkey %>%
group_by(Element)
class(avocados_turkey)
## [1] "spec_tbl_df" "tbl_df" "tbl" "data.frame"
avocados_turkey_chart <- avocados_turkey %>%
filter(Element %in% c("Production")) %>%
ggplot( aes(x=Year, y=Value, group=Element, color=Element)) +
geom_line() +
geom_point(shape=19, size=2) +
labs(y = "Value for Avocados", x = ("Year"),
title = "Crops and livestock products (Avocado in Turkey)",
caption= "Nazar Boncugu",
fill = "Element") +
scale_x_continuous(breaks=c(1988, 1992, 1996, 2000,2004, 2008, 2012, 2016, 2020)) +
#scale_y_continuous(breaks=c(0:max(avocados_turkey$Value))) +
theme(plot.title = element_text(size = 16, hjust = 0.5),
legend.title = element_text(face = "bold"),
axis.title = element_text(face = "bold")) +
theme_minimal() +
scale_colour_manual(values = c("Production" = "#7a0d1c"))
ggplotly(avocados_turkey_chart, tooltip = c("x", "y"))
At first, we read the data that we obtained from FAO’S trade section.
export2<- read.csv("data/export_quantity_blueberry.csv")
In this part,code in the R chunk selects the columns that we need from the data.
export_quantities_blueberry <-export2 %>%
select(Area, Element, Item, Year, Unit, Value, Flag.Description) %>%
filter(Flag.Description %in% c("Official data")) %>%
na.omit(export)
This part sort the data according to decreasing order in Value column.
export_quantities_blueberry_final <- export_quantities_blueberry[order(export_quantities_blueberry$Value, decreasing = TRUE),]
After this part we select first 5 rows of the data and assign them under a new name.
export_quantities_blueberry_final1 <- head(export_quantities_blueberry_final,5)
head(export_quantities_blueberry_final,5)
## Area Element Item Year Unit Value
## 21 Peru Export Quantity Blueberries 2019 tonnes 125056
## 32 United States of America Export Quantity Blueberries 2019 tonnes 52122
## 27 Spain Export Quantity Blueberries 2019 tonnes 45625
## 3 Canada Export Quantity Blueberries 2019 tonnes 36574
## 19 Netherlands Export Quantity Blueberries 2019 tonnes 25568
## Flag.Description
## 21 Official data
## 32 Official data
## 27 Official data
## 3 Official data
## 19 Official data
In this final part we use ggplot() function and create a bar plot. We can shape and color the bar plot using geom_bar(), theme() and labs() functions. By looking at the bar plot we can see the top 5 countries’ export quantity values in tonnes from blueberry trade.
barplot2 <- ggplot(data=export_quantities_blueberry_final1, aes(reorder(Area, Value), Value, fill = Area))+
geom_bar( stat="identity", color= "dark blue")+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))+
labs(title="Export Quantities from Blueberry",
y="Values(tonnes)", x="Countries") +
theme(plot.title = element_text(size = 18, color= "orange"),
axis.title.x = element_text(color = "orange"),
axis.title.y = element_text(color ="orange"),
axis.text.x = element_text(color = "darkblue",angle = 30, vjust = 1, hjust=1),
axis.text.y = element_text(color= "darkblue"))
ggplotly(barplot2)
We repeat the same steps to create another bar plot to see the dollar values of blueberry trade.
export1<- read.csv("data/export_value_blueberry.csv")
export_values_blueberry <-export1 %>%
select(Area, Element, Item, Year, Unit, Value, Flag.Description) %>%
filter(Flag.Description %in% c("Official data")) %>%
na.omit(export)
export_values_blueberry_final <- export_values_blueberry[order(export_values_blueberry$Value, decreasing = TRUE),]
export_values_blueberry_final1 <- head(export_values_blueberry_final,5)
head(export_values_blueberry_final,5)
## Area Element Item Year Unit Value
## 21 Peru Export Value Blueberries 2019 1000 US$ 820415
## 27 Spain Export Value Blueberries 2019 1000 US$ 233634
## 32 United States of America Export Value Blueberries 2019 1000 US$ 228212
## 19 Netherlands Export Value Blueberries 2019 1000 US$ 192590
## 18 Morocco Export Value Blueberries 2019 1000 US$ 181816
## Flag.Description
## 21 Official data
## 27 Official data
## 32 Official data
## 19 Official data
## 18 Official data
After this R chunk you can see that another bar plot is created. In this bar plot you see the top 5 countries’ export values in dollars from blueberry trade.
barplot1 <-
ggplot(data=export_values_blueberry_final1, aes(reorder(Area, Value), Value, fill = Area))+
geom_bar( stat="identity", color= "dark blue")+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))+
labs(title="Export Values from Blueberry",
y="Values (US$) ", x="Countries") +
theme(plot.title = element_text(size = 18, color= "orange"),
axis.title.x = element_text(color = "orange"),
axis.title.y = element_text(color ="orange"),
axis.text.x = element_text(color = "darkblue",angle = 30, vjust = 1, hjust=1),
axis.text.y = element_text(color= "darkblue"))
ggplotly(barplot1)
credit_data <- read.csv("data/FAOSTAT_agriculture_credits.csv")
view(credit_data)
credit_gif <- credit_data %>%
group_by(Area)%>%
ggplot(aes(reorder(Area,Value),Value,fill=Area))+
geom_col(show.legend = FALSE)+
coord_flip()+
theme_minimal()+
theme(plot.title = element_text(size = 18,color = "black"))+
labs(x=NULL,
y ="Value US $",
title = "Credit to Agriculture in 2019 ")
ggplotly(credit_gif,tooltip = c("x","y"))
credit_turkey <- read.csv("data/FAOSTAT_credit_turkey.csv")
view(credit_turkey)
deneme_gif <- credit_turkey %>%
ggplot( aes(x = Year, y = Value)) +
geom_line(color = "#0099f9", size = 0.7) +
geom_point(color = "#0099f9", size = 2) +
theme_minimal()+
labs(x = NULL, y = "millions")+
scale_x_continuous(breaks=c(2005, 2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019))+
labs(x=NULL,
y ="millions",
title = "Credit to Agriculture, Value US$ in Turkey ",
subtitle = "2005-2019",
caption = "NazarBoncugu")
ggplotly(deneme_gif, tooltip = c("x","y")) %>%
layout(title = list(text = paste0('Credit to Agriculture, Value US$ in Turkey',
'<br>',
'<sup>',
'2005-2019','</sup>')))
Although the lands of our country have fertile lands for the other fruits we mentioned besides cajun, we cannot make rapid progress in these fruits due to the insufficiency of the budget allocated for agricultural credit. But as our people’s interest in these fruits increases and they learn how healthy they are for our body, the demand for these fruits will increase. And the increasing demand will bring with it more production of these fruits in our country.
If we want healthier and better future in the years to come, countries need to increase their agricultural land in a healthy way. The food we choose and the way we consume it affect our health and also our planet. We have to help nature by helping agriculture-food systems work. Countries who has more arable land with productive soil should produce more food by using good technology and help to climate change. By doing these, why not they do not produce food that have been proven to be good for the brain. In our project we want to emphasize the importance of agriculture and food. If we want to be part of the change, let’s produce food while restoring the planet.
https://www.fao.org/faostat/en/#home
https://www.veribilimiokulu.com/r-ile-veri-gorsellestirme/
https://githubmemory.com/repo/MAT381E/Final-Projects
https://www.youtube.com/watch?v=xFqecEtdGZ0
https://data.nasa.gov/dataset/World-Map/7zbq-j77a
https://www.datasciencemadesimple.com/
https://datacarpentry.org/R-ecology-lesson/04-visualization-ggplot2.html