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)
  1. 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()
AGE Count Percentage label
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))

  1. Pie chart
BRFSS %>% 
  group_by(Region) %>%
  dplyr::count() %>% 
  pander()
Region n
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))