colnames(df3) print(df3) year_country_gdp <- df3 %>% select( TIME_PERIOD, geo, OBS_VALUE) year_country_gdp <- na.omit(year_country_gdp) colnames(year_country_gdp) df3 %>% group_by(geo) %>% str() str(year_country_gdp) # Plot ggplot(year_country_gdp, aes(x = TIME_PERIOD, y = OBS_VALUE, color = geo, label = geo)) + geom_line() + geom_point() + geom_text(aes(label = geo), hjust = -0.1, size = 3)+ labs(x = "Rok", y = 'PKB per capita w PPP [PPS_EU27_2020=100]') + scale_x_continuous(breaks=seq(2010,2024,2)) year_country_gdp # ################################################## # House price index HPI df1 house_price_index <- df1 %>% select( TIME_PERIOD, geo, OBS_VALUE) house_price_index <- na.omit(house_price_index) colnames(house_price_index) df1 %>% group_by(geo) %>% str() str(house_price_index) # Plot ggplot(house_price_index, aes(x = TIME_PERIOD, y = OBS_VALUE, color = geo, label = geo)) + geom_line() + geom_point() + geom_text(data = house_price_index %>% group_by(geo) %>% slice(n() - 1), aes(label = geo, hjust = -1, size = 4))+ scale_x_continuous(breaks=seq(2010,2024,2)) labs(x = "Rok", y = 'Indeks Cen nieruchomości [cena z 2015 roku = 100]') house_price_index # HICP - Harmonised Index for Consumer Prices df hicp_index <- df %>% select( TIME_PERIOD, geo, OBS_VALUE) hicp_index <- na.omit(hicp_index) colnames(hicp_index) df %>% group_by(geo) %>% str() str(hicp_index) # Plot ggplot(hicp_index, aes(x = TIME_PERIOD, y = OBS_VALUE, color = geo, label = geo)) + geom_line() + geom_point() + geom_text(data = hicp_index %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + labs(x = "Rok", y = 'Indeks inflacji konsumenckiej HICP [2015 = 100]') + scale_x_continuous(breaks=seq(2010,2024,2)) hicp_index # Merge the two data frames using the 'country' and 'date' columns merged_df <- merge(house_price_index, hicp_index, by = c("geo", "TIME_PERIOD")) merged_df # Create a new column that divides 'value1' by 'value2' merged_df$house_prices_wo_hicp <- merged_df$OBS_VALUE.x - merged_df$OBS_VALUE.y merged_df$TIME_PERIOD merged_df$compound_growth <- 1 * (1 + 0.02) ^ (1:(merged_df$TIME_PERIOD-2015)) # View the resulting merged data frame with the divided values merged_df merged_df <- na.omit(merged_df) colnames(merged_df) merged_df %>% group_by(geo) %>% str() str(merged_df) merged_df <- merged_df %>% filter(!geo %in% c("TR")) # Plot ggplot(merged_df, aes(x = TIME_PERIOD, y = house_prices_wo_hicp, color = geo)) + geom_line(linetype="dotted", size=1) + geom_point(aes(x=TIME_PERIOD, y=house_prices_wo_hicp)) + geom_text(data = merged_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + #stat_function(fun=function(x) 100*(1.04)^(x-2015), aes(colour = "4% Compounding")) + #stat_function(fun=function(x) 100*(1.07)^(x-2015), aes(colour = "7% Compounding")) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]') map_df <- merged_df %>% select( geo, house_prices_wo_hicp, TIME_PERIOD) map_df <- filter(map_df, TIME_PERIOD == 2022) map_df merged_df # Plot ggplot(hicp_index, aes(x = TIME_PERIOD, y = OBS_VALUE, color = geo, label = geo)) + geom_line() + geom_point() + geom_text(data = hicp_index %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + labs(x = "Rok", y = 'Indeks inflacji konsumenckiej HICP [2015 = 100]') + scale_x_continuous(breaks=seq(2010,2024,2)) write.csv(merged_df, ".//merged_df.csv") hicp_index write.csv(hicp_index, ".//hicp_index.csv") df = read.csv(".//data//compound_interest_housing") library(dplyr) # install.packages("ggplot2") library(ggplot2) df = read.csv(".//data//compound_interest_housing") df[,c("geo", "TIME_PERIOD", "OBS_VALUE")] library(dplyr) # install.packages("ggplot2") library(ggplot2) map_df = read.csv(".//data//compound_interest_housing") map_df = read.csv(".//data//compound_interest_housing.csv") map_df map_df = read.csv(".//data//compound_interest_housing_2.csv") map_df map_df = read.csv(".//data//compound_interest_housing_3.csv") map_df map_df = read.csv(".//data//compound_interest_housing.csv") map_df map_df = read.csv(".//data//compound_interest_housing.csv") map_df ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_line(linetype="dotted", size=1) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + stat_function(fun=function(x) 100*(1.04)^(x-2015), aes(colour = "4% Compounding")) + stat_function(fun=function(x) 100*(1.07)^(x-2015), aes(colour = "7% Compounding")) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]') ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_line(linetype="dotted", size=1) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'Indeks cen nieruchomości zdyskontowany o wartość inflacji [2015 = 100]') ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_line(linetype="dotted", size=1) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') plot(map_df$compound_interest) plot(map_df$geo,map_df$compound_interest) barplot(map_df$geo, map_df$compound_interest) ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') # install.packages("tidyverse") library(ggplot2) install.packages("tidyverse") install.packages("tidyverse") library(tidyverse) library(tidyverse) install.packages("tidyverse") install.packages("tidyverse") library(tidyverse) install.packages("tidyverse") install.packages("tidyverse") library(tidyverse) # install.packages("tidyverse") library(ggplot2) view(mapdata) map_df = read.csv(".//data//compound_interest_housing.csv") map_df ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') view(mapdata) mapdata <- map_data("world") library(tidyverse) # install.packages("tidyverse") library(ggplot2) map_df = read.csv(".//data//compound_interest_housing.csv") map_df ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') mapdata <- map_data("world") ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') library(dplyr) # install.packages("tidyverse") library(ggplot2) map_df = read.csv(".//data//compound_interest_housing.csv") map_df ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') mapdata <- map_data("world") view(mapdata) mapdata <- left_join(mapdata, map_df, by="region") test <- test %>% filter("Czech republic" ) test test <- mapdata %>% filter("Czech republic" ) test test <- mapdata %>% filter("Afghanistan" ) test test <- filter(mapdata, region="Afghanistan" ) test test <- filter(mapdata, region="Aruba" ) test filter(mapdata, region="Aruba" ) filter(mapdata, region="Aruba" ) filter(mapdata, region=="Aruba" ) filter(mapdata, region=="Czech republic" ) filter(mapdata, region=="Czech Republic" ) filter(mapdata, region=="Hungary " ) write.csv(mapdata, "./mapdata.csv") map_df = read.csv(".//data//compound_interest_housing.csv") map_df ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') mapdata <- map_data("world") mapdata <- left_join(mapdata, map_df, by="region") mapdata <- left_join(mapdata, map_df, by="region", relation = "many-to-many") view(mapdata) mapdata <- mapdata %>% filter(!is.na(mapdata$compound_interest)) view(mapdata) map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") map1 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low="yellow", high = "red", na.value = "grey50") map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low="yellow", high = "red", na.value = "grey50") view(mapdata) map1 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low="blue", high = "yellow", na.value = "grey50") map1 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low="blue", high = "red", na.value = "grey50") map1 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", palette(colorRamps::matlab.like), na.value = "grey50") map1 library(colorRamps) install.packages("colorRamps") library(colorRamps) map_df = read.csv(".//data//compound_interest_housing.csv") map_df ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') # filter data to have both coordinates and value mapdata <- map_data("world") mapdata <- left_join(mapdata, map_df, by="region", relation = "many-to-many") # filter data to have both coordinates and value mapdata <- map_data("world") mapdata <- left_join(mapdata, map_df, by="region", relation = "many-to-many") mapdata <- mapdata %>% filter(!is.na(mapdata$compound_interest)) map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", palette(colorRamps::matlab.like), na.value = "grey50") map1 view(mapdata) library(dplyr) library(tidyverse) # install.packages("colorRamps") library(ggplot2) library(colorRamps) map_df = read.csv(".//data//compound_interest_housing.csv") map_df ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') # filter data to have both coordinates and value mapdata <- map_data("world") mapdata <- left_join(mapdata, map_df, by="region", relation = "many-to-many") mapdata <- left_join(mapdata, map_df, by="region") , relation = "many-to-many" mapdata <- left_join(mapdata, map_df, by="region", relation = "many-to-many") map1 library(dplyr) library(tidyverse) # install.packages("colorRamps") library(ggplot2) library(colorRamps) map_df = read.csv(".//data//compound_interest_housing.csv") map_df ggplot(map_df, aes(x = TIME_PERIOD, y = compound_interest, color = geo)) + geom_point(aes(x=TIME_PERIOD, y=compound_interest)) + geom_text(data = map_df %>% group_by(geo) %>% slice(n()), aes(label = geo, hjust = -0.2, size = 4)) + scale_x_continuous(breaks=seq(2010,2024,2)) + labs(x = "Year", y = 'wartość mieszkania jako % składany powyżej inflacji') # filter data to have both coordinates and value mapdata <- map_data("world") mapdata <- left_join(mapdata, map_df, by="region", relation = "many-to-many") mapdata <- left_join(mapdata, map_df, by="region") map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", palette(colorRamps::matlab.like), na.value = "grey50") map1 mapdata <- left_join(mapdata, map_df, by="region") mapdata mapdata <- mapdata %>% filter(!is.na(mapdata$compound_interest)) View(mapdata) mapdata <- mapdata %>% filter(!is.na(mapdata$compound_interest.x)) map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", palette(colorRamps::matlab.like), na.value = "grey50") map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest.x), color = "black") + scale_fill_gradient(name="compound interest", palette(colorRamps::matlab.like), na.value = "grey50") map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest.x), color = "black") map1 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest.x), color = "black") + scale_fill_gradient(name="compound interest", palette = matlab.like, na.value = "grey50") map1 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest.x), color = "black") + scale_fill_gradient(name="compound interest", palette = "matlab.like", na.value = "grey50") map1 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest.x), color = "black") + scale_fill_gradient(name="compound interest", low = "yellow", high = "red", na.value = "grey50") map1 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest.x), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "grey50") map1 # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "United Kingdom") mapdata <- map_data("world") mapdata <- left_join(mapdata, map_df, by="region") mapdata <- mapdata %>% filter(!is.na(mapdata$compound_interest.x)| mapdata$region %in% geo_list) # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "United Kingdom") mapdata <- map_data("world") mapdata <- left_join(mapdata, map_df, by="region") mapdata <- mapdata %>% filter(!is.na(mapdata$compound_interest.x)| mapdata$region %in% geo_list) mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest.x)| mapdata1$region %in% geo_list) mapdata1 mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "grey50") map1 mapdata2 mapdata2 mapdata2 View(mapdata2) mapdata2 <- mapdata1 %>% filter(mapdata1$region %in% geo_list) #!is.na(mapdata1$compound_interest)| mapdata2 View(mapdata2) mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata2 map1 <- ggplot(mapdata, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "grey50") map1 map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "grey50") map1 view(mapdata) map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "yellow") map1 # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "England") mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata2 map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "yellow") map1 # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "Latvia", "Albania", "Switzerland", "Bosnia and Herzegowina", "Ukraine", "Scotland") mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata2 map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "yellow") map1 # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "Latvia", "Albania", "Switzerland", "Bosnia and Herzegowina", "Ukraine", "Scotland", "Turkey") mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region") mapdata1 <- left_join(mapdata, map_df, by="region", relationship = "many-to-many") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata2 map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "yellow") map1 # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "Latvia", "Albania", "Switzerland", "Bosnia and Herzegowina", "Ukraine", "UK", "Turkey", "Serbia", "Macedonia", "North Macedonia") mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region", relationship = "many-to-many") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata2 map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "yellow") map1 # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "Latvia", "Albania", "Switzerland", "Bosnia and Herzegovina", "Ukraine", "UK", "Turkey", "Serbia", "Kosovo" "Moldova", "North Macedonia", mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region", relationship = "many-to-many") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata2 map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "yellow") map1 # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "Latvia", "Albania", "Switzerland", "Bosnia and Herzegovina", "Ukraine", "UK", "Turkey", "Serbia", "Kosovo", "Moldova", "North Macedonia", "Montenegro") mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region", relationship = "many-to-many") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata2 map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "yellow") map1 # filter data to have both coordinates and value geo_list <- c("Belarus", "Greece", "Latvia", "Albania", "Switzerland", "Bosnia and Herzegovina", "Ukraine", "UK", "Turkey", "Serbia", "Kosovo", "Moldova", "North Macedonia", "Montenegro", "cyprus", "Malta") mapdata <- map_data("world") mapdata1 <- left_join(mapdata, map_df, by="region", relationship = "many-to-many") mapdata2 <- mapdata1 %>% filter(!is.na(mapdata1$compound_interest)| mapdata1$region %in% geo_list) mapdata2 map1 <- ggplot(mapdata2, aes(x = long, y = lat, group = group)) + geom_polygon(aes(fill = compound_interest), color = "black") + scale_fill_gradient(name="compound interest", low = "white", high = "black", na.value = "yellow") map1