首页
学习
活动
专区
圈层
工具
发布

ggplot2饼图和图注顺序不一致如何解决

不知道大家用ggplot2绘制饼图的时候有没有遇到过饼图上展示的顺序和图注上展示的顺序不一致的情况。今天小编就来跟大家一起来探讨一下这个问题。...问题其实出在name的levels上,饼图默认会根据name的levels来按逆时针绘制。我们从堆积柱形图上可以发现,程序会默认按字母顺序来对name进行排序,这也是因子levels的默认排序方法。...所以这样得到的饼图的顺序实际上是apple,banana,cherry......而图注的顺序跟name本身的顺序一致为apple,pear,orange.........修改图注中的顺序,使其跟原来name的levels的顺序一致 library(dplyr) data=data.frame(name=c("apple","pear","orange","banana...按所占百分比排序之后再绘制饼图的代码如下

3.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    《数据结构——排序(上)》从扑克牌到分治法:插入排序与希尔排序的深度剖析

    排序算法系列上篇:本文将带大家从最基础的插入排序开始,逐步深入到希尔排序,通过扑克牌整理的直观类比,结合真实代码实现和调试经验,彻底掌握这两种排序算法的核心思想与工程应用。...直接插入排序:扑克牌整理的艺术 2.1 基本思想 直接插入排序就像我们整理扑克牌的过程:假设左手已经拿了一部分有序的牌,右手从牌堆中取出一张新牌,然后从右向左依次比较,找到合适的位置插入,使得左手的牌始终保持有序...具体步骤: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置...tmp = a[end + 1]; // 待插入的元素 // 从后向前比较,找到插入位置 while (end >= 0) {...近乎有序的数据:当数组大部分已经有序时,效率接近O(N) 在线排序:数据是逐步到达的,需要动态维护有序性 2.5 小提醒:边界条件的陷阱 上数据结构课时,我第一次实现插入排序遇到了一个经典bug。

    11810

    「R」绘制分组排序点图

    使用 如果读者仅仅想使用,请从 Gitee 上安装 sigminer 包,或者拷贝本文最后的函数: remotes::install_git("https://gitee.com/ShixiangWang...下面是一个使用示例,通过构建一个示例数据进行绘图,展示如何传入分组变量和值变量、分组标签位置、排序以及点的透明度等: set.seed(1234) data data.frame( yval...图中的红色线段代表数据的中位数。也就是从图中我们可以看到每个具体排序后的样本值,以及整体的分布情况。...使用 ggplot2 实现这个图我遇到了不少难点,在实现的过程中除了深入理解了 ggplot2,我也同时感受到了它的灵活和限制。...难度有以下几点,感兴趣的读者不妨带着这些问题阅读源代码: 怎么对点排序,构建绘图坐标? 怎么对不同的 panel 展示不同的背景颜色?theme() 中的选项都不支持向量化,所以必须另辟蹊径。

    2.1K30

    数据清洗过程中常见的排序和去重操作

    数据操作中排序和去重是比较常见的数据操作,本专题对排序和去重做专门介绍,并且给出一种不常用却比较有启发意义的示例:多列无序去重 目 录 1 排序 1.1 sort 单列排序返回值 1.2 order...总结:order先对数值排序,然后返回排序后各数值的索引 #order相关语法 order(..., na.last = TRUE, decreasing = FALSE, method...[1] 5.0 6.5 4.0 6.5 10.0 8.0 2.0 1.0 3.0 9.0 1.4 arrage 多列排序 总结:arrange是dplyr包中的排序函数,可对数据框以列的形式进行因子排序...1.5.2 比如ggplot中绘条形图使x轴按y轴数值大小排序 说明:reorder函数具有对排序变量的因子化作用 > attach(mtcars) > str(reorder(gear,disp))...='')) #对逐行排序合并的结果进行去重,返回索引向量,然后(反向!)

    1.3K20

    房上的猫:经典排序算法 - 冒泡排序Bubble sort

    原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束,以此类推 例子为从小到大排序..., 原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环) 第一次两两比较6 > 2交换(内循环) 交换前状态| 6 | 2 | 4 | 1 | 5 | 9 | 交换后状态...| 5 | 6 | 9 | 第五次两两比较,6 < 9不交换 交换前状态| 2 | 4 | 1 | 5 | 6 | 9 | 交换后状态| 2 | 4 | 1 | 5 | 6 | 9 | 第二趟排序...| 5 | 6 | 9 | 第四次两两比较,5 < 6不交换 交换前状态| 2 | 1 | 4 | 5 | 6 | 9 | 交换后状态| 2 | 1 | 4 | 5 | 6 | 9 | 第三趟排序...(外循环)无交换 第五趟排序(外循环)无交换 排序完毕,输出最终结果1 2 4 5 6 9 动态图演示: ?

    958100

    合并和排序 Linux 上的文件

    在 Linux 上合并和排序文本的方法有很多种,但如何去处理它取决于你试图做什么:你是只想将多个文件的内容放入一个文件中,还是以某种方式组织它,让它更易于使用。...在 Linux 上,一个名为 filea 的文件将排在名为 fileA 的文件的前面,但会在 file7 的后面。...合并和排序文件 Linux 提供了一些有趣的方式来对合并之前或之后的文件内容进行排序。...按字母对内容进行排序 如果要对合并的文件内容进行排序,那么可以使用以下命令对整体内容进行排序: $ cat myfile.1 myfile.2 myfile.3 | sort > newfile 如果要按文件对内容进行分组...对内容进行排序有帮助,而且可能更容易管理,但只要顺序一致,就不需要这么做。 总结 在 Linux 上,你有很多可以合并和排序存储在单独文件中的数据的方式。这些方法可以使原本繁琐的任务变得异常简单。

    4.1K30

    合并和排序 Linux 上的文件

    在 Linux 上合并和排序文本的方法有很多种,但如何去处理它取决于你试图做什么:你是只想将多个文件的内容放入一个文件中,还是以某种方式组织它,让它更易于使用。...在 Linux 上,一个名为 filea 的文件将排在名为 fileA 的文件的前面,但会在 file7 的后面。...合并和排序文件 Linux 提供了一些有趣的方式来对合并之前或之后的文件内容进行排序。...按字母对内容进行排序 如果要对合并的文件内容进行排序,那么可以使用以下命令对整体内容进行排序: $ cat myfile.1 myfile.2 myfile.3 | sort > newfile 如果要按文件对内容进行分组...对内容进行排序有帮助,而且可能更容易管理,但只要顺序一致,就不需要这么做。 总结 在 Linux 上,你有很多可以合并和排序存储在单独文件中的数据的方式。这些方法可以使原本繁琐的任务变得异常简单。

    3.8K20

    Day07 生信马拉松-数据整理中的R

    , Sepal.Length) #从小到大排序 arrange(test, desc(Sepal.Length)) #从大到小排序 2.2 distinct,数据框按照某一列去重复 distinct...select() 筛选行的函数filter() 2.4.2 多重嵌套,代码不易读 pheatmap::pheatmap(head(as.matrix(select(iris,-5)),50)) # 从最里面的...中的第一列 ggplot2对行名并不友好,通常要使样本名转化为data.frame中的第一列,防止在后续代码运行过程中行名丢失 图片 图片 step2 把原来的行名转变为第一列 图片 step3 宽变长...:test、gene、count数均在一行上(将上图的宽数据变为长数据) 图片 6.2实操代码 6.2.1 如何生成一个matrix set.seed(10086) #设置种子数使随机生成的数固定 exp...a = colnames(y) b = x$file_name k = match(a,b);k # match(a,b)的意思是a里的每个元素在b的第几个位置上。

    1K00

    温故而知新,ggplot2 饼图的几点笔记

    对于平面内任何一点 M,用 ρ 表示线段 OM 的长度(有时也用 r 表示),θ 表示从 Ox 到 OM 的角度,ρ 叫做点 M 的极径,θ 叫做点 M 的极角,有序数对 (ρ, θ) 就叫点 M 的极坐标...我在网络上查了一下,比较少看到关于 coord_polar() 原理的介绍,只是在 ggplot2 的 Tidyverse 上发现了几个例子。...library(ggpubr) library(ggplot2) df data.frame(name = c("A", "B", "C"), value = c(10, 50, 30)) p...# Load ggplot2 library(ggplot2) # Create Data data data.frame(group=LETTERS[1:5], value=c(13,7,9,21,2....tidyverse.org/reference/scale_brewer.html 结合图片中反向对应的关系,在 A 区块上中间位置填充上对应的文字 "Num:90",它的坐标因该是 sum(dat

    1.9K10

    ggplot2:堆叠柱状图

    # 每个样本的累加值不相等,不能直接用来做百分比柱状图,需要转换下 # 不过这段仅仅是为了作图好看,已经准备好数据的可以不看下面的处理 data_percent = data.frame() # 建立空数据框...四、观测值和样本排序 然后是排序的问题,如果我想调整不同类型柱子的顺序,让他们按大小排序,可以用factor 函数 order_x = apply( data_percent[,1:7], 2, sum...# 看一下,是从大到小排着的 # 此时 data_plot数据框里面的 attitude 就按照给定的 levels 排序了 data_plotattitude = factor(data_plotattitude..., levels = names(order_x) , ordered = T ) # 看下排序对不对 p2 = ggplot( data_plot,aes(x = name, weight =...# 还可以给样本排序,同样的道理 data_plotname = factor(data_plotname, levels = name , ordered = T ) p3 = ggplot

    8K41

    跟小新老师学转录组的第五天

    功能注释 利用GO/KEGG注释给这些基因赋以“功能标签” 功能注释:查询感兴趣的基因/基因集合参与哪些可能的生命过程,起到了什么作用 1.差异分析筛选基因:MAOA(按照FC排序取top10)(NCBI-GeneID...• 这些功能具有概念上的交叠现象,不利于进一步的精细分析,所以研究人员希望对得到的功能结点加以过滤和筛选,以便获得更有意义的功能信息。...• 富集分析方法通常是分析一组基因在某个功能结点上是否过出现(over-presentation)。由单个基因的注释分析发展到大基因集合的成组分析。...(org.Hs.eg.db) library(GSEABase) library(ggplot2) library(tidyverse) packageVersion("clusterProfiler"...(ego_BP) ego_CC data.frame(ego_CC) ego_MF data.frame(ego_MF) write.csv(ego_BP,'result/6.enrichGO_BP.csv

    72620
    领券