Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R语言中颜色搭配以及圆形条形图展示

R语言中颜色搭配以及圆形条形图展示

作者头像
一粒沙
发布于 2019-07-31 01:53:27
发布于 2019-07-31 01:53:27
2.7K00
代码可运行
举报
文章被收录于专栏:R语言交流中心R语言交流中心
运行总次数:0
代码可运行

大家在绘制图的时候是不是有的时候老师纠结颜色的搭配。今天给大家介绍一个可以自动搭配颜色的R包RColorBrewer。R包的安装载入就不再赘述。直接进入主题。

首先我们看下它都包含了哪些颜色:

我们可以运行display.brewer.all(n=10,exact.n=FALSE)就可以看到这个包中所有的颜色搭配。

以上共有三组颜色:

  1. Sequential,按顺序渐变的,越往后颜色越深。
  2. Diverging,彼此之间差异变化较大的。
  3. Qualitative,这个用于最大程度地显示不同类之间的差别。

The sequential palettes names are (最大九种不同的颜色)

Blues BuGn BuPu GnBu Greens Greys OrangesOrRd PuBu PuBuGn PuRd Purples RdPu Reds YlGn YlGnBu YlOrBr YlOrRd

The diverging palettes are (最大11种不同颜色)

BrBG PiYG PRGn PuOr RdBu RdGy RdYlBu RdYlGnSpectral

当然也有个例如下:

Accent(8),Dark2(8),Paired(12),Pastel1(9),Pastel2(8),Set1 (9),Set2(8),Set3 (12)

如果我们需要的颜色数量大于12,那么我们需要利用R中自带的颜色向量:

terrain.colors(n),heat.colors(n),topo.colors(n),cm.colors(n),rainbow(n).

或者我们也可以R包中的颜色向量进行拼接也可以满足我们的需求。

接下来我们看下R包中的主要函数以及如何将颜色载入:

brewer.pal函数可以将颜色载入,其参数分布也很简单:brewer.pal(n,name)其中n指的颜色的个数,name指的颜色的名称(也就是上面三组中的某一个名称)最我们利用它进行实战画图。我们今天趁此机会跟大家介绍一种自编程的绘图叫圆形条形图。首先我们来看下实现原理:首先我们要知道圆上的点的计算公式x=r*cos(a);y=r*sin(a)。接下来就可以进行编程了,程序如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Bar_cycle<-function(name,value){
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    xsize=200
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   plot(0, 0,xlab="",ylab="",axes=FALSE,xlim=c(-xsize,xsize),ylim=c(-xsize,xsize))
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     for(i in 1:length(name)){
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         info = name[i]
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         percent = value[i]
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         k = 1:(360*percent/100)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        r=xsize*(length(name)-i+1)/length(name)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         #print(r)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         x=r*sin(k/180*pi)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         y=r*cos(k/180*pi)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         text(-18,r,info,pos=2,cex=1.5,col=cols[i])
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         text(-9,r,paste(percent,"%"),cex=1.5,col=cols[i])
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         lines(x,y,col=cols[i],lwd=(length(name)-i+1)*1.2)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 }
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
我们参考别人的数据信息进行图像的绘制,并且展示在我们颜色包中的颜色分布。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
country<-c("老挝","菲律宾","尼泊尔","孟加拉","阿富汗","新加坡","泰国","蒙古","新西兰")
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
percent<-c(90,81,80,77,75,74,73,72,68,)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
d<-data.frame(country,percent)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(RColorBrewer)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cols=brewer.pal(length(country),’ Set3’)####颜色配置
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
png("G:/test.png",width = 2048, height = 2048)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Bar_cycle(country,percent)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dev.off()

总结,如果想绘制其他的条形图原理通用,只要能把图像上的点有公式计算就可以绘制,同样颜色的搭配也可以参考RColorBrewer包或者自己设置。

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

本文分享自 R语言交流中心 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
R语言中的颜色(四)-RColorBrewer包
RColorBrewer包提供了3类调色板,用户只需要指定配色方案的名称,就可以用包中的brewer.pal()函数生成颜色。这3类包括:
生信交流平台
2022/09/21
2.5K0
R语言中的颜色(四)-RColorBrewer包
🤩 RColorBrewer | 再多的配色也能轻松搞定!~(二)
1写在前面 之前介绍了使用ggsci包进行配色,颜值很高,但有时候你可能需要更多的颜色。 本期介绍一下RColorBrewer包,万金油包,几乎适用任何情况。😘 2用到的包 rm(list = ls()) library(tidyverse) library(RColorBrewer) library(patchwork) 3示例数据 本期就用大名鼎鼎的iris吧。 dat <- iris 4查看所有配色 display.brewer.all() ---- Note! 这个包里包含3种配色,s
生信漫卷
2022/10/31
2.1K0
🤩 RColorBrewer | 再多的配色也能轻松搞定!~(二)
maftools | 从头开始绘制发表级oncoplot(瀑布图)
对于组学数据的分析和展示来说,maftools算是一个宝藏“R包”,可用于MAF格式的组学数据的汇总,分析和可视化展示。
生信宝典
2019/09/16
7.8K0
maftools | 从头开始绘制发表级oncoplot(瀑布图)
24种R语言新手入门之热图(四)
热图比较有意思,最常用的科研可视化做图,观察显著、直接、简单粗暴。这是Toussaint Loua在1873年就曾使用过热图来绘制对巴黎各区的社会学统计。
生信初学者
2023/03/14
9640
24种R语言新手入门之热图(四)
基因芯片数据分析
>source("http://www.bioconductor.org/biocLite.R")
黑妹的小屋
2020/08/06
1K0
funkyheatmap |临床+组学+分组数据可视化“神器”,时髦的热图
临床数据一般是使用图表汇总Table1的方式进行展示,例如R|tableone 快速绘制文章“表一”-基线特征三线表 或者 gtsummary|巧合-绘制多种数据汇总表“神器” 。
生信补给站
2023/03/08
1.2K0
funkyheatmap |临床+组学+分组数据可视化“神器”,时髦的热图
相关性热图、圈图、弦图(笔记)
如下所示,可以看到有多个样品,每个样品都有多个基因表达量,这个时候我们比较关心的是这些基因的表达量相关性(在多个样品),基因与基因之间有两两组合相关性:
生信技能树
2023/02/27
2.6K0
相关性热图、圈图、弦图(笔记)
【R语言】热图绘制-heatmap+RColorBrewer配色方案
也给大家介绍了如何使用R自带的heatmap函数+gplots的配色方案来绘制热图
生信交流平台
2022/09/21
3.1K0
【R语言】热图绘制-heatmap+RColorBrewer配色方案
R tips: R中的颜色配置方案
数据可视化不可避免的就是要选择一些颜色方案,颜色方案除了手动设置之外,在R中也有自动生成颜色方案的工具。
生信菜鸟团
2021/12/01
3.9K0
R tips: R中的颜色配置方案
Circos图神器--circlize包
circlize包是由德国癌症中心的华人博士Zuguang Gu开发,这个R包包含两个文件,一个是介绍绘制简单圈图的方法,另一个专门介绍基因组数据绘制圈图。
作图丫
2022/03/29
5.3K0
Circos图神器--circlize包
R语言实现sequence logos绘制
我们前面讲过在python中如何实现测序图标(sequence logos)的绘制。今天给大家介绍一个在R语言中实现DNA,RNA以及氨基酸的logos绘制的R包motifStack。首先我们看下包的安装,主要是通过bioconductor进行安装,具体的代码不再赘述,请参看bioconductor官网。如果能完整展示绘图还需要另外一个ghostscript的软件,其官网(https://www.ghostscript.com/):
一粒沙
2019/09/08
1.6K0
文献配套GitHub发表级别绘图03-条形图
文章来源:"Preoperative immune landscape predisposes adverse outcomes in hepatocellular carcinoma patients with liver transplantation" (2021,npj Precision Oncology),数据与代码全部公开在https://github.com/sangho1130/KOR_HCC。
生信技能树
2022/03/03
1.6K0
文献配套GitHub发表级别绘图03-条形图
R语言ggplot2科研数据作图配色的一些小技巧
大家好,在这里给大家介绍一下使用ggplot2绘图调色的几种小方法。正所谓绘图十分钟,调色一小时。图片的配色直接决定了图片质量的好坏。下面讲一下我平时绘图用到的调色工具。
用户7010445
2021/07/12
9.5K0
R语言ggplot2科研数据作图配色的一些小技巧
用R语言进行数据可视化的综合指南(一)
大数据文摘作品,欢迎个人转发朋友圈;其他机构、自媒体转载,务必后台留言,申请授权 编译|崔浩 校对|高航,姚佳灵 让我们快速浏览一下这张图表: 这张可视化数据图(最初用Tableau软件创建 )是如何利用数据可视化来帮助决策者的一个很好的例子。想象一下,如果这些信息通过表格来告诉投资者,你认为你会花多长时间来向他解释? 如今的世界里,随着数据量的不断增长,很难不用可视化的形式来呈现你数据里的全部信息。虽然有专门的工具,如Tableau, QlikView 和 d3.js,但没有任何东西能代替有很好可视化能力
大数据文摘
2018/05/21
1.2K0
R语言之可视化①⑦调色板
在基础图中使用RColorBrewer调色板,brewer.pal()函数用于生成颜色矢量。
用户1359560
2019/02/22
4.3K0
R语言之可视化①⑦调色板
R语言数据可视化综合指南
让我们快速浏览一下这张图表: 这张可视化数据图(最初用Tableau软件创建 )是如何利用数据可视化来帮助决策者的一个很好的例子。想象一下,如果这些信息通过表格来告诉投资者,你认为你会花多长时间来向他
CDA数据分析师
2018/02/08
2.7K0
R语言数据可视化综合指南
R语言入门之点图和条形图
在R语言里我们可以利用dotchart(x, labels=, groups=, gcolor=, cex=)函数来绘制点图,参数x是一组数值型向量,labels这个参数则是代表x中每个值的标签,其数据类型也是向量,这两个是基本参数。除此以外,groups参数可以对x进行分组,gcolor指定各个组的颜色,而cex则可以控制标签的尺寸。在这里我们仍将使用R内置的mtcars数据集来演示。
生信与临床
2020/08/06
2.1K0
R语言入门之点图和条形图
我的 Shiny 练习 | 堆积柱状图
我最近在分析胆汁酸的数据,所以想画个堆积柱状图,看看组间情况,大概的设想就是这样:
生信菜鸟团
2021/02/03
2.6K0
我的 Shiny 练习 | 堆积柱状图
上手即用,分组统计检验直方图的绘图脚本分享
发文章,写论文,分组统计检验直方图是最常见和最实用的,你是否还在烦恼如果把图画好,帮你解决困难啦!这里分享下同事新鲜写就的绘图脚本,自带了示例数据,可以一键出图,助力你的科研和学习。
用户1075469
2022/05/25
5820
上手即用,分组统计检验直方图的绘图脚本分享
R-plotly|交互式甘特图(Gantt chart)-项目管理/学习计划
甘特图(Gantt chart),又常被称为横道图或者条状图,是现代企业项目管理领域运用最为广泛的一种图示。就是通过条形来显示项目的进度、时间安排等相关情况的。
生信补给站
2020/08/06
8800
相关推荐
R语言中的颜色(四)-RColorBrewer包
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验