R语言柱状图排序和x轴上的标签倾斜操作

R语言做柱状图大致有两种方法, 一种是基础库里面的 barplot函数, 另一个就是ggplot2包里面的geom_bar

此处用的是字符变量 统计其各频数,然后做出其柱状图。(横轴上的标签显示不全)

t <- sort(table(dat1$L), decreasing = TRUE)                      #将频数表进行排序
r <- barplot(t, col = "blue",
       main = "柱状图", ylim = c(0,12), names.arg = dimnames(t)     #画字符变量的柱状图
tmp <- as.vector(t)                                           #将频数变成一个向量
text(r, tmp, label = tmp, pos = 3)                                #加柱子上面的标签

或用ggplot2包 (目前仍没有给柱子上加数字标签)

library(ggplot2)                                         #加载ggplot2包
reorder_size <- function(x) {
 factor(x, levels = names(sort(table(x))))
}                                                     #自定义函数,获取因子型变量的因子类型
p <- ggplot(dat3, aes(reorder_size(LAI))) +                   #用因子变量做基础底图,也可直接用reorder排序
 geom_bar(fill = "blue") +                                        #画柱状图
 theme(axis.text.x = element_text(angle = 45, hjust = 0.5, vjust = 0.5)) +   #让横轴上的标签倾斜45度
 xlab("柱状图")                                                #给x轴加标签

补充:R 语言条形图,解决x轴文字排序问题

数据结果的图形展示,R代码,《R数据科学》是个好东西

数据格式如下:

term category pval
neutrophil chemotaxis biological_process 1.68E-09
innate immune response biological_process 3.35E-09
complement activation, classical pathway biological_process 1.14E-08
negative regulation of endopeptidase activity biological_process 4.43E-08
collagen fibril organization biological_process 4.43E-08
blood coagulation biological_process 1.29E-07
proteolysis involved in cellular protein catabolic process biological_process 1.56E-07
proteolysis biological_process 1.13E-06
leukocyte migration involved in inflammatory response biological_process 1.47E-06
peptide cross-linking biological_process 1.47E-06
extracellular space cellular_component 8.75E-40
collagen-containing extracellular matrix cellular_component 2.08E-26
extracellular matrix cellular_component 5.72E-11
lysosome cellular_component 6.09E-10
extracellular region cellular_component 6.58E-10
collagen trimer cellular_component 1.68E-09
cell surface cellular_component 2.80E-08
extracellular exosome cellular_component 2.34E-07
extrinsic component of external side of plasma membrane cellular_component 1.47E-06
sarcolemma cellular_component 3.16E-06

作图要求:x轴为term,颜色按categroy分类、并且pval由小到大排序

代码:

#openxlsx读入为data.frame
class(data)
#转换
library(tidyverse)
godata<-as_tibble(godata)
class(godata)
#原始数据筛选(category,term,pval)散列,按照category,-log10(pval)排序
data<-godata%>%select(category,term,pval)%>%arrange(category,desc(-log10(pval)))
#画图时改变geom_bar的自动排序
data$term<-factor(data$term,levels = unique(data$term),ordered = T)
#作图
ggplot(data)+
 geom_bar(aes(x=term,y=-log10(pval),fill=category),stat = 'identity')+
 coord_flip()

结果:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • R语言-实现提取包含某字符串的行变量

    已解决 用grep函数 A=read.table("clipboard",sep="/t",header=T) A[grep(pattern="/resource/activity",A[,1]),] 补充:R语言 如何截取字符串特定字符前或后的字符串 如待处理字符串是: topic = "#全国累计报告72436例新冠肺炎#/#全国累计报告72436例新冠肺炎#.csv" 需要截取出:"全国累计报告72436例新冠

  • R语言本地安装包图文教程

    第一步 从R语言官网,下载package: 以 'data.table'为例,如图. 找到最左边一列中的Packages点击, 再点中间Table of available packages 或Table of available packages sorted by name 第二步 下载好包到本地后, 别忘了下载到哪了. 然后在R软件选择-程序包-install package from local files,选择下载好的 'data.table'文件. 结束~ 补充:R语言-包的安装.载

  • R语言-如何将循环所得的矩阵组成一个矩阵

    在矩阵合并中,常见的方法有cbind()和rbind() 其中,前者为按列合并,后者为按行合并. 但是这两个函数有个缺点,就是不能应用到循环之中.例如: A<-matrix(1:12,nrow = 4,byrow = T) B<-matrix(1:8,nrow = 4,byrow = T) C<-cbind(A,B) 得到的矩阵C为[按列合并两者行数必须相同]: 但是如果将这个方法应用在循环中,就无法取得预期效果: A<-matrix(1:12,nrow = 4,byrow = T

  • R语言-如何截取变量中指定位置的若干个字符

    例如,某数据库如下,需要把第二个变量里面的ID号码(格式为T-20-252-02)提取出来作为一个新变量. 命令如下: b=readWorksheetFromFile(temp[11],sheet=1) 读入excel数据,命名为数据库b,这里temp[11]是读入temp中第11个文件名对应的文件 attach(b) attach数据库,之后即可直接用变量名file, 否则要用b$file b$id=substr(File,regexpr("T",File),regexpr(&quo

  • R语言-如何按照某一列分组求均值

    主要介绍tapply函数: 每次只能求一列 aggregate函数:每次按组可以求多列 tapply(shuju[shuju[,3],shuju$year,mean) 以年份为组,求shuju表第三列的均值 aggregate(shuju[,3:4],list(shuju[,2]),mean) 以年份为均值,求数据表第三列,第四列的均值 补充:R语言按某一列分类求均值+绘图总结 看代码吧~ D<-aggregate(.~K,data=data1,mean) #求数据集data1按照K分类后所有列

  • R语言:排序的应用操作

    工作中遇到过许多看起来挺复杂的数据筛选,本质上都可以用排序解决,这里以R自带的mtcar数据集为例做一个记录. 首先简单介绍一下mtcar数据集,mtcar(Motor Trend Car Road Tests)是一个32行11列的数据集,记录了32种汽车的11种性能,具体数据如下: > mtcars mpg cyl disp hp drat wt qsec vs am gear carb Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4 M

  • R语言中for循环的并行处理方式

    前言 本文用于记录笔者在将R语言中的for语句并行化处理中的一些问题. 实验 这里使用foreach和doParallel包提供的函数实现for语句的并行处理. for语句脚本 func <- function(x, y, z) { return(x^y/z) } # >>> main <<< x <- 2 y <- 3 z <- 1:100000 start <- (proc.time())[3][[1]] a <- 0 for (

  • R语言拼接字符串_paste的用法说明

    R中自带的字符串连接的函数是paste. 先来看一下官方文档里对paste用法的解释: 基本格式: paste (-, sep = " ", collapse = NULL) 其中,-表示对象,可以有多个,中间用逗号隔开. sep表示分隔符,默认为空格. collapse表示如果不指定值,那么函数paste的返回值是-的对象之间通过sep指定的分隔符连接后得到的一个字符型向量:如果为其指定了特定的值,那么自变量连接后的字符型向量会再被连接成一个字符串,之间通过collapse的值分隔.

  • R语言柱状图排序和x轴上的标签倾斜操作

    R语言做柱状图大致有两种方法, 一种是基础库里面的 barplot函数, 另一个就是ggplot2包里面的geom_bar 此处用的是字符变量 统计其各频数,然后做出其柱状图.(横轴上的标签显示不全) t <- sort(table(dat1$L), decreasing = TRUE) #将频数表进行排序 r <- barplot(t, col = "blue", main = "柱状图", ylim = c(0,12), names.arg = di

  • R语言绘图时输出希腊字符上下标及数学公式实现方法

    目录 希腊字母 上下标 paste 一个复杂的例子 进阶 数学公式 通常在我们写论文时,所需要的统计图是非常严谨的,里面的希腊字符与上下脚标都必须要严格书写.因此在使用R绘图时,如何在我们目标图中使用希腊字符.上标.下标及一些数学公式呢?在本博客中我们会进行详细的说明. 后面我们都将以一个最简单的绘图为例,只是将其标题进行修改. 希腊字母 使用希腊字符.上标.下标及数学公式,都需要利用一个函数:expression(),具体使用方式如下: plot(cars) title(main = expr

  • R语言 实现手动设置xy轴刻度的操作

    在R中,plot函数作图时会自动给出xy轴的刻度标度,如下图: 有时我们需要自己定义xy轴的刻度,这时我们可以用axis中的at和labels参数来更改. 首先,我们先令plot不要画出xy轴的标度 然后,用axis函数设置xy轴的刻度 这样xy轴的刻度就完全按照我们自己的意愿显示了,也可以设置at参数不是均匀的,总之,用这两个参数就可以完全自己控制xy轴的刻度显示了 补充:R语言自定义坐标轴示例 我就废话不多说了,大家还是直接看代码吧~ x <- c(1:10) y <- x z <-

  • R语言 查找满足条件的数并获取索引的操作

    1.在R语言中,如何找到满足条件的数呢? 例如给定一个向量c2,要求找到数值大于0的数: > c2 [1] 0.00 0.00 0.00 0.00 0.00 0.00 0.06 0.09 0.20 0.09 0.08 0.14 0.14 0.23 [15] 0.08 0.06 0.12 0.20 0.14 0.11 0.20 0.14 0.17 0.15 0.18 0.15 0.20 0.12 [29] 0.23 0.08 0.12 0.08 0.23 0.12 0.08 0.17 0.18 0

  • R语言开发之输出折线图的操作

    线形图是通过在多个点之间绘制线段来连接一系列点所形成的图形,这些点按其坐标(通常是x坐标)的值排序,并且它通常用于识别数据趋势. 在R中的通过使用plot()函数来创建线形图,语法如下: plot(v,type,col,xlab,ylab) 参数描述如下: v - 是包含数值的向量. type - 取值"p"表示仅绘制点,"l"表示仅绘制线条,"o"表示仅绘制点和线. xlab - 是x轴的标签. ylab - 是y轴的标签. main - 是图

  • R语言绘图大小设定的操作

    图片大小设定 x = c(1:10) y = c(11:20) par(pin = c(5,3))#pin()函数控制图形的尺寸 plot(x = x, y = y) x = c(1:10) y = c(11:20) par(pin = c(2,3))#pin()函数控制图形的尺寸 plot(x = x, y = y) 补充:R语言ggplot2绘图设置X轴刻度,字体大小及绘图区大小 如下所示: > colnames(data1)[seq(2,ncol(data1), 15)] [1] "

  • R语言ggplot2x轴顺序设置自定义颜色的操作

    先声明一下所用的数据集 第一个图如下 这个图主要在于x轴的顺序设置上,如果按不做任何处理的话>3那个就会在2之前,解决方法是b[,1]<-factor(b[,1],levels=c('2','3',">3")),这句代码可以重新设置因子的级别 完整代码如下: a[,1]<-factor(a[,1],levels=c('2','3',">3")) ggplot(a,aes(x=a[,1],y=a[,2]))+geom_bar(stat=&

  • R语言数据可视化ggplot添加左右y轴绘制天猫双十一销售图

    目录 构造数据集 绘制散点 修改两坐标轴信息 本文是以天猫双十一销量与增长率为例,原始的数据可以参考上一篇文章:用 ggplot 重绘天猫双十一销售额图,这里不再作过多的介绍. 同时整个的天猫双十一的销售额数据分析可以关注:天猫双十一"数据造假"是真的吗? 老规矩,先上最终成果(两张图只是颜色的差别): 上图左边 y 轴表示增长率的刻度,右边 y 轴表示销售额的数据,我们将两者在同一张图上进行展现.其实将两个统计图在同一个坐标系中呈现不算是这个绘图的难点,其真正的难点在与刻度的变换以及

  • R语言操作X轴日期实例讲解

    R语言操作X轴日期: 需要用到程序包library(lubridate):程序包是在R的安装包C:\R-3.4.4\bin\x64\RGui.exe里根据命令安装的 将日期改为xxxx/xx/01: firstDay='2020/02/12' : 可用 day(firstDay)<-01; //此时firstDay的数据为:'2020/02/01':day()是获取日,month()获取月份,year()获取年份 都需要'lubridate'包 可以通过write.table(firstDay,

随机推荐