实际使用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 轴排序问题相关推荐

  1. R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:display only integer values on axis

    R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:display only integer values on axis 目录 R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:d

  2. R语言ggplot2可视化增加轴标签(ticks)和轴标题(title)之间的距离实战

    R语言ggplot2可视化增加轴标签(ticks)和轴标题(title)之间的距离实战 目录 R语言ggplot2可视化增加轴标签(ticks)和轴标题(title)之间的距离实战

  3. R语言ggplot2可视化更改轴上数字的格式(显示格式)实战

    R语言ggplot2可视化更改轴上数字的格式(显示格式)实战 目录 R语言ggplot2可视化更改轴上数字的格式(显示格式)实战

  4. R语言可视化包ggplot2包设置轴断点位置实战(Axis Breaks)、即自定义X轴和Y轴的数值标记位置

    R语言可视化包ggplot2包设置轴断点位置实战(Axis Breaks).即自定义X轴和Y轴的数值标记位置 目录

  5. ggplot2画图教程

    ggplot2画图教程 ggplot2是什么? ggplot2是用于绘图的R语言扩展包,其理念根植于<Grammar of Graphics>一书.它将绘图视为一种映射,即从数学空间映射到 ...

  6. R语言ggplot2可视化在轴标签中添加上标(Superscript)和下标(subscript)实战

    R语言ggplot2可视化在轴标签中添加上标(Superscript)和下标(subscript)实战 library(ggplot2) qplot(uptake, data = CO2) +xlab ...

  7. R语言ggplot2可视化为轴标签添加下标实战:符号下标、百分比下标、带括号的下标

    R语言ggplot2可视化为轴标签添加下标实战:符号下标.百分比下标.带括号的下标 目录

  8. R语言ggplot2可视化:ggplot2可视化为轴标签添加复杂下标(Subscripts)和上标(superscripts)、离子化学符号(ionic chemical notation)等

    R语言ggplot2可视化:ggplot2可视化为轴标签添加复杂下标(Subscripts)和上标(superscripts).离子化学符号(ionic chemical notation)等 目录

  9. 二、Python开发——matplotlib画图x轴任意尺寸拉长

    matplotlib画图x轴任意尺寸拉长: 我们在使用python的matplotlib进行绘图时,有时会发现画出的图片x轴跟y轴是等比例的,如下图1所示:但是有时我们需要看到x轴上非常多的数据信息, ...

  10. MATLAB画图——设置轴标签不同字体

    MATLAB画图--设置轴标签不同字体 投论文需要插入MATLAB图,但是图需要按照严格的文字格式怎么办?如,x轴标签"时间/s"需要8号字体且中文宋体,英文Times New R ...

最新文章

  1. php5.3.8添加eaccelerator扩展 加速php代码执行效率
  2. 一次ajax多次回调结果,Ajax异步的回调函数执行了多遍
  3. python with方法
  4. 2 image pil 转_pdf转图片,php语言和Java语言的两种方法
  5. 通过git命令将本地代码文件推送至github
  6. php yield 个人小解_PHP中的性能优化利器:生成器 yield 理解
  7. 实现计算机系统的资源共享,实现多操作系统计算机的资源共享
  8. XTU 设置教程 自动化 睡眠 休眠
  9. Mysql设计层优化整理总结
  10. 电商项目:高仿小米商城(API文档)
  11. Rviz显示不出数据了之一文搞懂Qos
  12. 关于一阶线性电路的零输入响应
  13. 软件测试之-集成测试
  14. java深入理解深拷贝和浅拷贝的区别 如何实现深拷贝和浅拷贝
  15. 无限制版电驴搜索器(绿色版)
  16. 【26】Android - 初识Fragment
  17. f_mkfs 使用用法示例
  18. 熊市中,值得关注的项目都有这三大特征
  19. java窗体显示字体_文字字体设计窗体 实验!求大神
  20. .net6API使用SignalR+vue3聊天+WPF聊天

热门文章

  1. System.getProperty()方法大全
  2. 读《创业36条军规》(四)创业是最好的武器
  3. 在word中如何制作问卷调查?原来是使用word控件技巧!
  4. python 扫描二维码
  5. 文化财经SAR指标计算(一)
  6. html微信分享没有图片不显示,微信分享网页链接缩略图不显示解决方法
  7. 浅谈大数据的过去、现在和未来
  8. 4G模块ME909S-821调试记录
  9. 我的生活所感悟出的杂句
  10. 用C处理字符串:键盘输入“yes”,则输出“ok”;输入其他字符,则输出“Thank you”;