ggplot2 画图 X 轴排序问题
实际使用ggplot2画柱状体时,遇到x轴排序问题。本文描述问题及其解决过程。
data(tips, package = "reshape2")library(tidyverse)
library(scales) # for percentage scalestips %>% count(day) %>% mutate(perc = n / nrow(tips)) -> tips2
ggplot(tips2, aes(x = day, y = perc)) + geom_bar(stat = "identity")
图形画出来了,但x轴的顺序不对。原来ggplot2的排序有一定规则:
- 如果是factor类型,则使用factor的level属性作为排序依据
- 如果是character类型,则按照字母顺序
显然上面因为days是字符串,默认按照字母顺序。下面我们修改days为factor类型。
tips2$day <- factor(tips2$day,levels = c("Thur", "Fri", "Sat", "Sun"))
ggplot(tips2, aes(x = day, y = perc)) + geom_bar(stat = "identity")
有时我们并不满足x轴按照factor排序,假设需要按照频率排序,最频繁的序列排在最前面,实现方式如下:
ggplot(tips2, aes(x = reorder(day, -perc), y = perc)) + geom_bar(stat = "identity")
注意,上面代码中的负号表示降序。
ggplot2 画图 X 轴排序问题相关推荐
- R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:display only integer values on axis
R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:display only integer values on axis 目录 R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:d
- R语言ggplot2可视化增加轴标签(ticks)和轴标题(title)之间的距离实战
R语言ggplot2可视化增加轴标签(ticks)和轴标题(title)之间的距离实战 目录 R语言ggplot2可视化增加轴标签(ticks)和轴标题(title)之间的距离实战
- R语言ggplot2可视化更改轴上数字的格式(显示格式)实战
R语言ggplot2可视化更改轴上数字的格式(显示格式)实战 目录 R语言ggplot2可视化更改轴上数字的格式(显示格式)实战
- R语言可视化包ggplot2包设置轴断点位置实战(Axis Breaks)、即自定义X轴和Y轴的数值标记位置
R语言可视化包ggplot2包设置轴断点位置实战(Axis Breaks).即自定义X轴和Y轴的数值标记位置 目录
- ggplot2画图教程
ggplot2画图教程 ggplot2是什么? ggplot2是用于绘图的R语言扩展包,其理念根植于<Grammar of Graphics>一书.它将绘图视为一种映射,即从数学空间映射到 ...
- R语言ggplot2可视化在轴标签中添加上标(Superscript)和下标(subscript)实战
R语言ggplot2可视化在轴标签中添加上标(Superscript)和下标(subscript)实战 library(ggplot2) qplot(uptake, data = CO2) +xlab ...
- R语言ggplot2可视化为轴标签添加下标实战:符号下标、百分比下标、带括号的下标
R语言ggplot2可视化为轴标签添加下标实战:符号下标.百分比下标.带括号的下标 目录
- R语言ggplot2可视化:ggplot2可视化为轴标签添加复杂下标(Subscripts)和上标(superscripts)、离子化学符号(ionic chemical notation)等
R语言ggplot2可视化:ggplot2可视化为轴标签添加复杂下标(Subscripts)和上标(superscripts).离子化学符号(ionic chemical notation)等 目录
- 二、Python开发——matplotlib画图x轴任意尺寸拉长
matplotlib画图x轴任意尺寸拉长: 我们在使用python的matplotlib进行绘图时,有时会发现画出的图片x轴跟y轴是等比例的,如下图1所示:但是有时我们需要看到x轴上非常多的数据信息, ...
- MATLAB画图——设置轴标签不同字体
MATLAB画图--设置轴标签不同字体 投论文需要插入MATLAB图,但是图需要按照严格的文字格式怎么办?如,x轴标签"时间/s"需要8号字体且中文宋体,英文Times New R ...
最新文章
- php5.3.8添加eaccelerator扩展 加速php代码执行效率
- 一次ajax多次回调结果,Ajax异步的回调函数执行了多遍
- python with方法
- 2 image pil 转_pdf转图片,php语言和Java语言的两种方法
- 通过git命令将本地代码文件推送至github
- php yield 个人小解_PHP中的性能优化利器:生成器 yield 理解
- 实现计算机系统的资源共享,实现多操作系统计算机的资源共享
- XTU 设置教程 自动化 睡眠 休眠
- Mysql设计层优化整理总结
- 电商项目:高仿小米商城(API文档)
- Rviz显示不出数据了之一文搞懂Qos
- 关于一阶线性电路的零输入响应
- 软件测试之-集成测试
- java深入理解深拷贝和浅拷贝的区别 如何实现深拷贝和浅拷贝
- 无限制版电驴搜索器(绿色版)
- 【26】Android - 初识Fragment
- f_mkfs 使用用法示例
- 熊市中,值得关注的项目都有这三大特征
- java窗体显示字体_文字字体设计窗体 实验!求大神
- .net6API使用SignalR+vue3聊天+WPF聊天
热门文章
- System.getProperty()方法大全
- 读《创业36条军规》(四)创业是最好的武器
- 在word中如何制作问卷调查?原来是使用word控件技巧!
- python 扫描二维码
- 文化财经SAR指标计算(一)
- html微信分享没有图片不显示,微信分享网页链接缩略图不显示解决方法
- 浅谈大数据的过去、现在和未来
- 4G模块ME909S-821调试记录
- 我的生活所感悟出的杂句
- 用C处理字符串:键盘输入“yes”,则输出“ok”;输入其他字符,则输出“Thank you”;