前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言作图挑战:你会采用什么方式来复现这种文本在柱子上方的柱形图?

R语言作图挑战:你会采用什么方式来复现这种文本在柱子上方的柱形图?

作者头像
用户7010445
发布2023-10-28 17:40:28
1920
发布2023-10-28 17:40:28
举报

看见R语言数据可视化大佬的twitter

image.png

image.png

挑战:你会采用什么方式来复现这种文本在柱子上方的柱形图

今天的推文我给出自己的方案,欢迎大家留言讨论给出自己的方案

我的思路是在输入数据上做准备,我把数据整理成如下格式

这里是5个柱子,我准备10个柱子的数据,其中5个柱子的值设置为0

我整理的数据格式如下

image.png

作图代码

代码语言:javascript
复制
library(readxl)
library(ggplot2)
library(ggh4x)

dat<-read_excel("data/20231027/20231027.xlsx")
dat

ggplot(data = dat,aes(x=x,y=y))+
  geom_col(aes(fill=group),show.legend = FALSE)+
  geom_text(aes(x=0,y=y,label=label),
            hjust=0,vjust=1,size=10)+
  geom_text(aes(x=x,y=y,label=scales::percent(label1,accuracy = 0.1)),
            hjust=c(rep(1,9),0),
            size=5,
            color=c(rep("white",9),"black"),
            fontface="bold")+
  theme_bw(base_size = 20)+
  theme(panel.grid = element_blank(),
        panel.border = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks.y = element_blank(),
        axis.line.x = element_line())+
  labs(x="Proportion",y=NULL)+
  guides(x=guide_axis_truncated(trunc_lower = 0,
                                trunc_upper = 40))+
  scale_x_continuous(labels = function(x){paste0(x,"%")})+
  scale_fill_manual(values = c("A"="#1d7859","B"="#7f7f7f","D"="white"))

image.png

image.png

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-10-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作图代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档