R语言 ggplot2改变柱状图的顺序操作
如下所示:
library(ggplot2) library(ggthemes) dt = data.frame(obj = c('A','D','B','E','C'), val = c(2,15,6,9,7)) dt$obj = factor(dt$obj, levels=c('D','B','C','A','E')) ## 设置柱条的顺序 p = ggplot(dt, aes(x = obj, y = val, fill = obj, group = factor(1))) + geom_bar(stat = "identity", width = 0.5) + ## 修改柱条的宽度 theme_economist() p ## 特注:dt$obj 是因子类型,ggplot2作图的顺序就是按照这个因子水平的顺序来的, ## 所以我们修改因子水平的顺序即可修改作图的顺序,具体情况可以输出一下 dt$obj
补充:ggplot柱状图调整顺序_1.3 让ggplot2的柱状图根据y的大小依次排列
方法:映射时使用reorder函数,将映射给x的横坐标的变量()的次序,依据映射给y的变量的大小排列。
一、基本柱形图
#先看一个常见的柱状图,此处的fill是给每一条的柱状图同一个颜色,所以没有写在ggplot语句中;当然默认先把映射给x的Abb变量转化为因子变量(factor)
ggplot(upc, aes(x = Abb, y = Change)) + geom_col(fill = "#669933")
发现: 柱子的大小没有任何规律,原因在于下面的x轴的坐标。虽然没有专门设置x轴字体,不是清晰,但可以看到x轴的排列是根据ggplot中映射给x的每个因子变量的首字母排列的,A、B、C...
所以要想生成我们想要的顺序的柱状图:要么手动设置因子的顺序,要么按照按照一定的逻辑排列:比如,按照y轴的值从小到大排列。那么:
二、使用reorder函数让柱状图有顺序
# 映射给x的不是简单的变量名为Abb的变量,而是将Abb变量根据Change变量(默认从小到大)reorder后的Abb变量
ggplot(upc, aes(x = reorder(Abb,Change), y = Change)) + geom_col(fill = "#669933")
如图:
当然,想让y轴从大到小变化,只需在Change前面加个负号:
ggplot(upc, aes(x = reorder(Abb, - Change), y = Change)) + geom_col(fill = "#669933")
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
R语言 解决安装ggplot2报错的问题
如下所示: install.packages('xxx',repos='http://cran.us.r-project.org') xxx 改为 ggplot2 补充:R包安装时,出现的错误解决合集 如下所示: 1.library(devtools) #error:Error in get(genname, envir = envir) : object 'testthat_print' not found #解决 options("repos" = c(CRAN="htt
-
R语言 使用ggplot2绘制好看的分组散点图
我们以iris数据集为例,该数据集包括花萼的长度和宽度,花瓣的长度和宽度,以及物种,如下图: 本文我们要绘制不同物种下花萼的长度和宽度的分布情况,以及二者之间的相关性关系. 1. 首先载入ggplot2包, library(ggplot2) 2. 然后进行ggplot(data = NULL, mapping = aes(), ..., environment = parent.frame())绘制,在绘制中第一个参数是数据,第二个参数是数据映射,是绘制的全局变量,其中包含的参数有x,y,col
-
R语言ggplot2包之注释方式
引言 光光展示数据对可视化来说,远远不够.还有其他很多信息能够帮助读者解释你的数据.除了标签.坐标轴.图例外,还能够增加注释,比如强调图画的某一区域,添加描述性文本等. 添加文本注释 你可以在图形中添加文本,增加可读性.我们在annotate函数中设置text参数即可. library(ggplot2) library(gcookbook) p <- ggplot(faithful, aes(x=eruptions, y=waiting)) + geom_point() p + annotate
-
R语言ggplot2边框背景去除的实现
ggplot2是R语言功能强大的可视化包,但是在作图时有很多默认设置(边框,背景等)会影响图片美观度.比如我们用ggolot2做一个简单的柱状图,就会发现有灰色背景和白色线条.对于这一问题给出几种解决方案. ggplot(mtcars)+geom_bar(aes(x=cyl)) 1.theme_classic() 应用R自带的主题,比如theme_classic(),就可以使图片美观许多,不仅背景去掉了,坐标轴也更加清晰,如下图所示: ggplot(mtcars)+geom_bar(aes(x=
-
R语言ggplot2之图例的设置
引言 图例的设置包括移除图例.改变图例的位置.改变标签的顺序.改变图例的标题等. 移除图例 有时候你想移除图例,使用 guides(). library(ggplot2) p <- ggplot(PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot() p + guides(fill=FALSE) 改变图例的位置 我们可以用theme(legend.position=-)将图例移到图表的上方.下方.左边和右边. p <-
-
R语言ggplot2包之坐标轴详解
引言 我们还可以对图形中的坐标轴进行处理,包括x.y轴对换.设定坐标轴范围.刻度线修改与去除等等.要想对图形玩得转,坐标轴处理精通不可或缺. 坐标轴对换 我们使用coord_flip()函数来对换坐标轴. library(ggplot2) library(gcookbook) ggplot(PlantGrowth, aes(x=group, y=weight)) + geom_boxplot() ggplot(PlantGrowth, aes(x=group, y=weight)) + geom
-
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语言 ggplot2改变柱状图的顺序操作
如下所示: library(ggplot2) library(ggthemes) dt = data.frame(obj = c('A','D','B','E','C'), val = c(2,15,6,9,7)) dt$obj = factor(dt$obj, levels=c('D','B','C','A','E')) ## 设置柱条的顺序 p = ggplot(dt, aes(x = obj, y = val, fill = obj, group = factor(1))) + geom_
-
R语言ggplot2设置图例(legend)的操作大全
目录 基本箱线图(带有图例) 移除图例 修改图例的内容 颠倒图例的顺序 隐藏图例标题 修改图例中的标签 修改data.frame的factor 修改标题和标签的显示 修改图例的框架 设置图例的位置 隐藏斜线 总结 本文在 http://www.cookbook-r.com/Graphs/Scatterplots_(ggplot2)/ 的基础上加入了自己的理解 图例用来解释图中的各种含义,比如颜色,形状,大小等等, 在ggplot2中aes中的参数(x, y 除外)基本都会生成图例来解释图形, 比
-
R语言ggplot2实现将多个照片拼接到一起
将多个照片拼接到一起,然而电脑上没有安装ps 和 ai (拼图我暂时只想到这两个软件了) 直接使用R语言吧 思路是读取图片 使用ggplot2 显示 最后使用patchwork 拼接 代码 library(ggplot2) library(jpeg) library(ggpubr) library(patchwork) img0<-readJPEG("308/0.JPG") p0<-ggplot()+ background_image(img0)+ theme_void()
-
R语言ggplot2拼图包patchwork安装使用
目录 引言 安装 例子 高级特性 引言 patchwork是基于ggplot2的拼图包,因为ggplot2本身没有强大的拼图语法,而一般使用的gridExtra与cowplot的拼ggplot2图形都存在不少问题. 我关注这个包蛮久了,现在Github上的Star数已经远超大部分的R包,但似乎还没有发布到CRAN.我的工作看似跟作图相关,写的博文大多数也如此,但实际对图形的掌控力并不咋的,所以还是要多多学习. 下面进入正题,掌握好ggplot2与patchwork的基本用法,一般的图形都可以搞定
-
R语言学习ggplot2绘制统计图形包全面详解
目录 一.序 二.ggplot2是什么? 三.ggplot2能画出什么样的图? 四.组装机器 五.设计图纸 六.机器的零件 1. 零件--散点图 1) 变换颜色 2) 拟合曲线 3) 变换大小 4) 修改透明度 5) 分层 6) 改中文 2. 零件--直方图与条形图 1) 直方图 2) 润色 3) 条形图 3. 零件--饼图 4. 零件--箱线图 5. 零件--小提琴图 6. 零件打磨 7. 超级变变变 8. 其他常用零件 七.实践出真知 八.学习资源 九.参考资料 一.序 作为一枚统计专业的学
-
R语言数据可视化包ggplot2画图之散点图的基本画法
目录 前言 下面以一个简单的例子引入: 首先介绍第一类常用的图像类型:散点图 给原始数据加上分类标签: 按z列分类以不同的颜色在图中画出散点图: 按z列分类以不同的形状在图中画出散点图: 多面化(将ABC三类分开展示): 自定义颜色: 添加拟合曲线: 更换主题 : 总结 前言 ggplot2的功能很强大,并因为其出色的画图能力而闻名,下面来介绍一下它的基本画图功能,本期介绍散点图的基本画法. 在ggplot2里,所有图片由6个基本要素组成: 1. 数据(Data) 2. 层次(Layers),包
随机推荐
- js实现动态显示时间效果
- Hibernate实现悲观锁和乐观锁代码介绍
- php 各种应用乱码问题的解决方法
- php解析url的三个示例
- Go实现比较时间大小
- C#利用时间和随即字符串创建唯一的订单编号
- Android View移动的3种方式总结
- JS实现简单易用的手机端浮动窗口显示效果
- jQuery写的日历(包括日历的样式及功能)
- 一天一个shell命令 linux文本操作系列-chmod命令用法
- jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
- jQuery实现带动画效果的多级下拉菜单代码
- jQuery 常见学习网站与参考书
- js使用post 方式打开新窗口
- 关于Bootstrap按钮组件消除黄框的方法
- C语言实现大数据文件的内存映射机制
- 麦鸡的TAB切换功能结合了javascript和css
- Android开发技巧之ViewStub控件惰性装载
- JS验证输入的是否是数字及保留几位小数问题
- 无耻的随机7位字符名病毒的查杀方法