美文网首页
【R>>barplot】特别的柱状图

【R>>barplot】特别的柱状图

作者: 高大石头 | 来源:发表于2021-06-10 07:58 被阅读0次

题记:一个简单但富有特色的柱状图

本文为ggplot2绘制一个特别的柱状图(来自公众号:R语言数据分析指南)的学习笔记,仅供学习交流使用,如有侵权,请联系删除。

核心操作:
aes(alpha=order_rev %in% c(1:3,15:18))

rm(list = ls())
library(tidyverse)
library(ggtext)
library(ggsci)

castways <- readr::read_csv("D:/jianshu/R-barplot-2106/castaways.txt")
head(castways)
## # A tibble: 6 x 18
##   season_name season full_name castaway   age city  state personality_type   day
##   <chr>        <dbl> <chr>     <chr>    <dbl> <chr> <chr> <chr>            <dbl>
## 1 Survivor: ~     40 Natalie ~ Natalie     33 Edge~ New ~ ESTP                 2
## 2 Survivor: ~     40 Amber Ma~ Amber       40 Pens~ Flor~ ISFP                 3
## 3 Survivor: ~     40 Danni Bo~ Danni       43 Shaw~ Kans~ ENFJ                 6
## 4 Survivor: ~     40 Ethan Zo~ Ethan       45 Hill~ New ~ ISFP                 9
## 5 Survivor: ~     40 Tyson Ap~ Tyson       39 Mesa  Ariz~ ESTP                11
## 6 Survivor: ~     40 Rob Mari~ Rob         43 Pens~ Flor~ ESTJ                14
## # ... with 9 more variables: order <dbl>, result <chr>, jury_status <chr>,
## #   original_tribe <chr>, swapped_tribe <chr>, swapped_tribe2 <chr>,
## #   merged_tribe <chr>, total_votes_received <dbl>, immunity_idols_won <dbl>
df <- castways %>% 
  select(season,personality_type,order) %>% 
  dplyr::filter(!is.na(personality_type)) %>% 
  separate(personality_type,
           into = c("mind","energy","nature","tactics"),
           sep = 1:3) %>% 
  group_by(season) %>% 
  mutate(order_rev=pmin(18,max(order)-order+1)) %>% 
  ungroup()

df %>% 
  count(order_rev,mind) %>% 
  ggplot(aes(order_rev,n,fill=mind,col=mind,alpha=order_rev %in%c(1:3,15:18)))+
  geom_col(position = "dodge")+
  scale_x_continuous(breaks = 1:18,labels = c(1:17,">18"))+
  scale_fill_nejm()+
  scale_color_nejm()+
  scale_alpha_discrete()+
  theme_light()+
  labs(x=NULL)+
  scale_y_continuous(expand = c(0,0))+
  theme(axis.title.y = element_blank(),
        axis.ticks.y = element_blank(),
        plot.subtitle = element_markdown(size=16),
        plot.title=element_text(size=20),
        panel.grid.minor = element_blank(),
        axis.title = element_text(size=12),
        axis.text = element_text(size = 12),
        legend.position = "none")
image.png

参考资料:

ggplot2绘制一个特别的柱状图(来自公众号:R语言数据分析指南)

相关文章

网友评论

      本文标题:【R>>barplot】特别的柱状图

      本文链接:https://www.haomeiwen.com/subject/pynqeltx.html