ggplot2 小技巧

Tidyverse 中的分类数据

Emily Robinson

Instructor

职位数据

 

job_titles_by_perc
# A tibble: 16 x 2
   CurrentJobTitleSelect                perc_w_title
   <chr>                                       <dbl>
 1 Business Analyst                          0.0673 
 2 Computer Scientist                        0.0283 
 3 Data Analyst                              0.103  
 4 Data Miner                                0.00997
 5 Data Scientist                            0.206  
 6 DBA/Database Engineer                     0.0158 
Tidyverse 中的分类数据

初始图

ggplot(job_titles_by_perc,
        aes(x = CurrentJobTitleSelect,, y = perc_w_title)) + 
    geom_point() 

散点图,x 轴为"Current Job Title Select",y 轴为"Perc w title"。x 轴刻度文本重叠,无法阅读。散点未按 y 轴排序。

Tidyverse 中的分类数据

调整刻度标签角度

ggplot(job_titles_by_perc,
        aes(x = CurrentJobTitleSelect, y = perc_w_title)) + 
    geom_point() + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1))

与前一散点图相同,但将 x 轴刻度标签旋转为竖直,便于阅读。

Tidyverse 中的分类数据

使用 fct_reorder()

ggplot(job_titles_by_perc, 
   aes(x = fct_reorder(CurrentJobTitleSelect, perc_w_title), 
       y = perc_w_title)) + 
    geom_point() + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1))

与前一散点图相同,但按 y 轴从小到大(从左到右)排序。

Tidyverse 中的分类数据

加入 fct_rev()

ggplot(job_titles_by_perc, 
        aes(x = fct_rev(fct_reorder(CurrentJobTitleSelect, 
        perc_w_title)), y = perc_w_title)) + 
    geom_point() + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1))

与前一散点图相同,但按 y 轴从大到小(从左到右)排序。

Tidyverse 中的分类数据

使用 labs()

ggplot(job_titles_by_perc, 
        aes(x = fct_rev(fct_reorder(CurrentJobTitleSelect, perc_w_title)),
            y = perc_w_title)) + 
    geom_point() + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
    labs(x = "Job Title", y = "Percent with title")

与前一散点图相同,但 x 轴标注为"Job Title",y 轴标注为"Percent with title"。

Tidyverse 中的分类数据

切换为百分比刻度

ggplot(job_titles_by_perc, 
       aes(x=fct_rev(fct_reorder(CurrentJobTitleSelect,perc_w_title)),
           y=perc_w_title)) + 
    geom_point() + 
    theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
    labs(x = "Job Title", y = "Percent with title") + 
    scale_y_continuous(labels = scales::percent_format())

与前一散点图相同,但 y 轴刻度改为百分比。例如,.05 现在显示为 5%。

Tidyverse 中的分类数据

Passons à la pratique !

Tidyverse 中的分类数据

Preparing Video For Download...