大数跨境
0
0

ggplot2绘制正负分布条形图

ggplot2绘制正负分布条形图 R语言数据分析指南
2022-07-03
2

欢迎关注R语言数据分析指南

本节来介绍如何ggplot2来绘制正负分布的条形图,在之前展示案例的基础上进行了一些小的改动,下面通过1个案例来进行展示;数据及代码已经上传小编的VIP群,有需要的观众老爷欢迎加入小编的VIP群,目前已经上传「公众号文档数据+代码约170余篇」,扫描文末尾二维码加小编微信「付费99元」后邀请进群,「由于群名额有限人满之后将不在添加新成员」,有需要的请尽早加入,早进早享受;如果对加群没兴趣的观众老爷可在文末找到获取数据的方式

加载R包

library(tidyverse)
library(grid)
library(ggtext)

导入数据

chocolate <- read_csv('chocolate.csv')

mean <- mean(chocolate$rating)

数据清洗

df <- chocolate  %>%
  group_by(company_location) %>% 
  summarise(n = n(),min_rating = min(rating),max_rating = max(rating),
            avg_rating = mean(rating, na.rm = T)) %>% 
  mutate(company_location = fct_reorder(company_location, avg_rating)) %>% 
  filter(n > 3) %>% 
  mutate(rating_diff = avg_rating - mean) %>% 
  filter(abs(rating_diff) >0.05)

数据可视化

df %>% 
    ggplot() + 
    geom_col(aes(x = rating_diff, y = company_location, fill = rating_diff > 0),
             size = 0.25, color = "white")+
    geom_point(aes(x = rating_diff,y = company_location,
                 color=ifelse(rating_diff > 0,"#E11B4D","#8456BA")),size=5)+
    geom_text(aes(x = ifelse(rating_diff > 0, -.005, .005),y = company_location, 
                  label = company_location,
                  color=ifelse(rating_diff > 0,"#E11B4D","#8456BA"),
                  hjust = ifelse(rating_diff > 0, 1, 0)),size = 4)+
    geom_vline(xintercept=0,size=1,color="grey40")+
    scale_x_continuous(expand = expansion(add = c(0,.2)),
                       breaks = seq(-.4,.2, by = .2)) + 
    scale_y_discrete(expand = c(.025,.025))+
    scale_fill_manual(values = c("TRUE" = "#E11B4D","FALSE" = "#8456BA"))+
    scale_color_manual(values = c("#8456BA","#E11B4D"))+
    coord_cartesian(clip = "off") +  
    theme_minimal() + 
    theme(panel.grid = element_blank(),
          plot.background = element_rect(fill="Aliceblue",color="Aliceblue"),
      axis.text.y =  element_blank(),
      axis.title = element_blank(),
      legend.position = "none",
      axis.text.x = element_text(face = "bold", size =rel(1), color = "black"))

数据获取

本节介绍到此结束,「有需要获取本篇数据的欢迎转发此文档到朋友圈,30分钟后公众号后台截图给小编」,添加小编微信时请备注来意以便高效处理,「当然更加推荐加入小编的VIP交流群」,绝让你体会到物超所值

小编微信

关注下方公众号下回更新不迷路


往期推荐

[会员转享] ggplot2跨分面进行显著性标记

跟着nature communications学绘图(9) ggplot2绘制误差线点图

跟着nature communications学绘图(8) ggprism优雅的添加p值

ggplot2优雅的绘制圆点柱状图

ggplot2优雅的给图形添加渐变背景

ggplot2优雅对并排条形图添加显著性标记

ggplot2绘制CNS级热图

[会员专享] ggplot2绘制CNS级的柱状图

ggplot2绘制美美的面积图

使用R优雅的批量计算相关性

【声明】内容源于网络
0
0
R语言数据分析指南
R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
内容 1180
粉丝 0
R语言数据分析指南 R语言重症爱好者,喜欢绘制各种精美的图表,喜欢的小伙伴可以关注我,跟我一起学习
总阅读222
粉丝0
内容1.2k