本文主要展示在ggplot2在绘图中,如何将坐标轴的小数点形式改为百分比形式,如下图所示。更多内容可关注微信公众号**【日常分享的小懒猫】**
。
1、数据准备
1.1加载package
library(tidyverse)
library(gapminder)
head(gapminder)
# country continent year lifeExp pop gdpPercap
#1 Afghanistan Asia 1952 28.8 8425333 779.
#2 Afghanistan Asia 1957 30.3 9240934 821.
#3 Afghanistan Asia 1962 32.0 10267083 853.
#4 Afghanistan Asia 1967 34.0 11537966 836.
#5 Afghanistan Asia 1972 36.1 13079460 740.
#6 Afghanistan Asia 1977 38.4 14880372 786.
1.2计算百分比
使用gapminder数据集,计算欧洲地区国家平均GDP及其占比。
gapminder_df <- gapminder %>% filter(continent == "Europe") %>% group_by(country) %>%
summarise(gdp_value = mean(gdpPercap)) %>%
mutate(gdp_prop = gdp_value/sum(gdp_value)) %>% arrange(-gdp_prop)
sum(gapminder_df$gdp_prop)
#[1] 1
gapminder_df
# country gdp_value gdp_prop
# 1 Switzerland 27074. 0.0624
# 2 Norway 26747. 0.0616
# 3 Netherlands 21749. 0.0501
# 4 Denmark 21672. 0.0499
# 5 Germany 20557. 0.0474
# 6 Iceland 20531. 0.0473
# 7 Austria 20412. 0.0470
# 8 Sweden 19943. 0.0459
# 9 Belgium 19901. 0.0458
#10 United Kingdom 19380. 0.0446
2、图形绘制
2.1小数点形式
ggplot(gapminder_df, aes(gdp_prop, reorder(country, gdp_prop))) +
geom_col(width = 0.6, fill = "lightblue", color = "black") +
theme_bw(base_size = 15) +
labs(x = "gdp_prop", y = "country") +
scale_x_continuous(breaks = seq(0, 0.07 ,0.01)) +
theme(panel.grid.major.x = element_blank())
2.2将x轴改为百分比形式
利用scales包中的percent_format() 函数。
ggplot(gapminder_df, aes(gdp_prop, reorder(country, gdp_prop))) +
geom_col(width = 0.6, fill = "lightblue", color = "black") +
theme_bw(base_size = 15) +
labs(x = "gdp_prop", y = "country") +
scale_x_continuous(breaks = seq(0, 0.07 ,0.01), labels = scales::percent_format()) +
theme(panel.grid.major.x = element_blank())
3、其他
其他绘图方法可进一步阅读公众号【日常分享的小懒猫】 上的文章,欢迎关注转发分享。