Как получить мои данные и объединить карту, а затем построить ее. Это не работает со мной. Я ничего не получаю или я получаю карту серого мира - PullRequest
0 голосов
/ 29 апреля 2019

Я работаю на задании для школы. Я хотел построить карту мира и поместить в нее свои данные, но она не сработает.

Я попытался объединить свой набор данных с картой мира с библиотекой (maps). Все, что я получаю, - это карта мира, которая серого цвета или вообще отсутствует. Я думаю, что я загрузил необходимые пакеты, например: tidyverse, maps, dplyr, ggplot. мой набор данных от: http://www.ncdrisc.org/data-downloads-adiposity.html

# Codes before plotting
df <- NCD_RisC_Lancet_2017_BMI_age_standardised_country

df2 = filter(df, Year == "2016")

dfmann = filter(df2, Sex == "Men")
colnames(dfmann)[colnames(dfmann)=="Country/Region/World"] <- "Country"
colnames(dfmann)[colnames(dfmann)=="Mean BMI"] <- "Mean_BMI"
colnames(dfmann)
dfman = select(dfmann, Country, Year, Sex, Mean_BMI)



   # Codes before plotting
df <- NCD_RisC_Lancet_2017_BMI_age_standardised_country

df2 = filter(df, Year == "2016")

dfmann = filter(df2, Sex == "Men")
colnames(dfmann)[colnames(dfmann)=="Country/Region/World"] <- "Country"
colnames(dfmann)[colnames(dfmann)=="Mean BMI"] <- "Mean_BMI"
colnames(dfmann)
dfman = select(dfmann, Country, Year, Sex, Mean_BMI)

worldbmi <- map_data("world")
p <- ggplot(data = worldbmi,
            mapping = aes(x = long, y = lat,
                          group = group))
p + geom_polygon(fill = "white", color = "black")

p <- ggplot(data = worldbmi,
            aes(x = long, y = lat,
                group = group, fill = region))
p + geom_polygon(color = "gray90", size = 0.1) + guides(fill = FALSE)


dfman2$region <- tolower(dfman2$Country)
world_bmi <- left_join(worldbmi, dfman2, by = "region")
head(world_bmi)
world_bmi

# codes for plotting
p1 <- ggplot(data = world_bmi,
            aes(x = long, y = lat,
                group = group, fill = Mean_BMI))
p1 + geom_polygon(color = "gray90", size = 0.1)  + 
  scale_fill_gradient(low = "white", high = "#CB454A")

p2 <- p1 + theme_map() +
  labs(fill = NULL)
p2

# I also tried this
p0 <- ggplot(data = world_bmi,
             mapping = aes(x = long, y = lat, group = group, fill = Mean_BMI))
p1 <- p0 + geom_polygon(color = "gray90", size = 0.1)
p2 <- p1 + scale_fill_gradient2() + labs(title = "BMI 2016 Men")
p2 + theme_map() + labs(fill = "BMI")

p3 <- p1 + scale_fill_gradient2(low = "red", mid = scales::muted("purple")) +
                             labs(title = "BMI 2016")
p3 + theme_map() + labs(fill = "BMI") enter code here

worldbmi <- map_data("world")
p <- ggplot(data = worldbmi,
            mapping = aes(x = long, y = lat,
                          group = group))
p + geom_polygon(fill = "white", color = "black")

p <- ggplot(data = worldbmi,
            aes(x = long, y = lat,
                group = group, fill = region))
p + geom_polygon(color = "gray90", size = 0.1) + guides(fill = FALSE)


dfman2$region <- tolower(dfman2$Country)
world_bmi <- left_join(worldbmi, dfman2, by = "region")
head(world_bmi)
world_bmi

# codes for plotting
p1 <- ggplot(data = world_bmi,
            aes(x = long, y = lat,
                group = group, fill = Mean_BMI))
p1 + geom_polygon(color = "gray90", size = 0.1)  + 
  scale_fill_gradient(low = "white", high = "blue")

p2 <- p1 + theme_map() +
  labs(fill = NULL)
p2

# I also tried this
p0 <- ggplot(data = world_bmi,
             mapping = aes(x = long, y = lat, group = group, fill = Mean_BMI))
p1 <- p0 + geom_polygon(color = "gray90", size = 0.1)
p2 <- p1 + scale_fill_gradient2() + labs(title = "BMI 2016 Men")
p2 + theme_map() + labs(fill = "BMI")

p3 <- p1 + scale_fill_gradient2(low = "red", mid = scales::muted("purple")) +
                             labs(title = "BMI 2016")
p3 + theme_map() + labs(fill = "BMI")

Я ожидал получить карту мира с объединенным набором данных, чтобы я мог показать, в каких странах самый высокий ИМТ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...