前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言作图——Circular bar plot

R语言作图——Circular bar plot

作者头像
一只羊
发布2022-03-29 19:00:40
4060
发布2022-03-29 19:00:40
举报
文章被收录于专栏:生信了生信了

不知不觉,距离小仙上次发文已经过去五个多月了。R语言作图系列的更新频率跟理想中的一月一次差别有点忒大了,不得不让小仙陷入深深的反思,对于时间的规划也有了一些新的感悟。

不知道大家有没有跟我一样的感受啊,举些例子: 放学、下班或者放假之后先把学习任务扔在一边,心想着,我先玩会游戏,等会玩够了再做; 网上看到一篇干货满满的文章,先点收藏,心想着,等我有空的时候再仔细看看; 听说身边的朋友利用空余时间做了什么了不起的事情,心想着,等我有空了,我也可以试一试; ....... 这样的例子数不胜数了,哈哈,小仙常想的就是,一个月有四个周末,这周末先休息,等下个周末再写文章...

就这样,周末要么觉得自己前一段太辛苦了要放松一下,要么在赶紧急的deadline,反倒是重要但是不那么紧急,也没有人给设立deadline的发文大事业被耽误了,哈哈。 现在小仙就觉得,等我有空了 = 没有空, 很多时候,一些可做可不做的事情,等着等着就不做了。如果真的想做某件事情,要么立刻马上行动起来,要么就安排好具体的时间(某一天的几点到几点之间),并且把有可能发生冲突的事情也安排好。

可惜目前小仙也只是能意识到这个问题,还不能合理安排好自己的时间,现在还是在摸索阶段...

言归正传,这次给大家分享的图,是这个样子的,姑且称之为环形柱状图

Step1. 绘图数据的准备

首先还是要把你想要绘图的数据调整成R语言可以识别的格式excel中保存成csv格式。 数据的格式如下图:

Step2. 绘图数据的读取

代码语言:javascript
复制
data <- read.csv(“your file path”, header = T)

Step3.绘图所需package的调用

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

Step4.绘图

先画出普通的柱状图

代码语言:javascript
复制
p1 <- ggplot(data, aes(x = 书名,  y = 销量, fill = 书名)) + 
  geom_bar(stat = "identity", width = 0.5) +
  theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) +
  xlab("销量排行前十") + theme(legend.position = "none") +
  scale_y_continuous("销量", breaks = c(0, 200000, 400000, 600000),
                     labels = c("0", "200000", "400000", "600000"))
p1

环形柱状图

代码语言:javascript
复制
p2 <- ggplot (data, aes(x = 书名,y = 销量, fill = 书名)) + 
  geom_bar(stat = "identity", width = 0.5) +
  theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) +
  xlab("销量排行前十") + theme(legend.position = "none") +
  scale_y_continuous("销量", breaks = c(0, 200000, 400000, 600000),
                     labels = c("0", "200000", "400000", "600000")) +
  coord_polar(start = 7)
p2

排好序的环形柱状图

代码语言:javascript
复制
data$书名 <- factor(data$书名)
data$书名 <- reorder(data$书名, -data$销量)
p3 <- ggplot(data, aes(x = 书名,y = 销量, fill = 书名)) + 
  geom_bar(stat = "identity", width = 0.5) +
  theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9)) +
  xlab("销量排行前十") + theme(legend.position = "none")+
  scale_y_continuous("销量", breaks = c(0, 200000, 400000, 600000),
                     labels = c("0","200000","400000","600000")) +coord_polar(start = 7)
p3

调整颜色

代码语言:javascript
复制
p4 <- ggplot(data, aes(x =书名,y = 销量,fill = 分组)) + 
     geom_bar(stat = "identity", width = 0.5) +
     theme(axis.text.x = element_text(angle = 45, hjust = 0.8, vjust = 0.9))+
     xlab("销量排行前十") + theme(legend.position = "none")+
     scale_y_continuous("销量", breaks = c(0, 200000, 400000, 600000),
                     labels = c("0","200000","400000","600000")) +
     coord_polar(start = 7) +
     scale_fill_manual(values = c(第一梯队="#E41A1C",第二梯队="#377eb8",第三梯队="gray"))
p4

注意事项

在调整颜色的时候有个小插曲,一开始用的语句是

代码语言:javascript
复制
scale_fill_manual(values = c("#E41A1C", "#377eb8", "gray"))

但是得到的图是这样的

并不是"第一梯队"给到了红色,debug的时候发现,data$分组这一列的数据是这样的,怪不得给不到想要的颜色

把scale_fill_manual()的语句调整一下就可以啦

代码语言:javascript
复制
scale_fill_manual(values = c(第一梯队="#E41A1C",第二梯队="#377eb8",第三梯队="gray"))
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信了 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图数据库 KonisGraph
图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档