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)
## Warning: package 'ggplot2' was built under R version 3.6.3
library(scales)
library(pander)
- Bar chart
BRFSS <- read.csv(file="C:/Users/user/Desktop/Data analysis projects/Data visuzalization/BRFSS2018-V3.csv", header = TRUE, sep = ",")
df_age <- BRFSS %>%
group_by(AGE) %>%
summarise(Count = n()) %>%
mutate(Percentage = round(Count*100/sum(Count),2),
label = percent(Percentage/100))
df_age %>%
pander()
| 18-29 |
29415 |
10.52 |
10.5% |
| 30-39 |
34450 |
12.32 |
12.3% |
| 40-49 |
38340 |
13.71 |
13.7% |
| 50-59 |
53253 |
19.05 |
19.0% |
| 60-69 |
63216 |
22.61 |
22.6% |
| 70-79 |
42788 |
15.3 |
15.3% |
| 80+ |
18110 |
6.48 |
6.5% |
ggplot(df_age, aes(x = AGE,
y = Percentage)) +
geom_bar(stat = "identity",
fill = "royalblue4",
width = 0.80) +
geom_text(aes(label = paste0(Percentage,"%")),
vjust = -0.3,
size = 4,
fontface = "bold") +
labs(x = "Age group",
y = "Percent of respondents (%)",
caption = "Data source: BRFSS2018") +
theme(axis.text = element_text(size = 12),
axis.title = element_text(size = 12, face = "bold"),
plot.caption = element_text(color = "grey44",size = 12,face = "italic"),
legend.text = element_text(colour="black", size = 12))

- Pie chart
BRFSS %>%
group_by(Region) %>%
dplyr::count() %>%
pander()
| Midwest |
76268 |
| Northeast |
57288 |
| South |
83856 |
| West |
62160 |
df_region <- BRFSS %>%
group_by(Region) %>%
dplyr::count() %>%
ungroup()%>%
arrange(desc(Region)) %>%
mutate(percentage = round(n/sum(n),4)*100,
lab.pos = cumsum(percentage)-.5*percentage)
ggplot(data = df_region,
aes(x = "",
y = percentage,
fill = Region))+
geom_bar(stat = "identity")+
coord_polar("y") +
geom_text(aes(y = lab.pos,
label = paste(percentage,"%", sep = "")), col = "white", size = 5) +
scale_fill_manual(values = c("#FB6542","#3F681C","#4D585B", "#375E97")) +
theme_void() +
theme(legend.title = element_text(color = "black", size = 12),
legend.text = element_text(color = "black", size = 12))
