Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在ggplot2上利用标识控制叠加条形图的有序性

如何在ggplot2上利用标识控制叠加条形图的有序性
EN

Stack Overflow用户
提问于 2015-09-01 22:22:20
回答 6查看 124.6K关注 0票数 55

使用这个虚拟的data.frame

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ts <- data.frame(x=1:3, y=c("blue", "white", "white"), z=c("one", "one", "two"))

我试着在上面画“蓝色”类。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(ts, aes(z, x, fill=factor(y, levels=c("blue","white" )))) + geom_bar(stat = "identity")

上面写着“白色”。和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(ts, aes(z, x, fill=factor(y, levels=c("white", "blue")))) + geom_bar(stat = "identity")

颠倒颜色,但仍然给我“白色”的顶部。我怎么才能把“蓝色”放在上面?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-09-01 23:10:38

我以前也曾为同样的问题而奋斗过。它似乎是基于数据栏中的外观来堆叠条形的。因此,解决问题的方法是按照填充因子按相反的顺序对数据进行排序,希望它出现在图例中:数据帧顶部的底部项和底部的顶部项:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(ts[order(ts$y, decreasing = T),],
       aes(z, x, fill=factor(y, levels=c("blue","white" )))) + 
  geom_bar(stat = "identity")

编辑:更多插图

使用样本数据,我创建了三幅具有不同顺序的数据图,我认为更多的填充变量会使事情变得更加清晰。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set.seed(123)
library(gridExtra)
df <- data.frame(x=rep(c(1,2),each=5),
                 fill_var=rep(LETTERS[1:5], 2),
                 y=1)
#original order   
p1 <- ggplot(df, aes(x=x,y=y,fill=fill_var))+
  geom_bar(stat="identity") + labs(title="Original dataframe")


#random order
p2 <- ggplot(df[sample(1:10),],aes(x=x,y=y,fill=fill_var))+
  geom_bar(stat="identity") + labs(title="Random order")
#legend checks out, sequence wird

#reverse order
p3 <- ggplot(df[order(df$fill_var,decreasing=T),],
             aes(x=x,y=y,fill=fill_var))+
  geom_bar(stat="identity") + labs(title="Reverse sort by fill")

plots <- list(p1,p2,p3)

do.call(grid.arrange,plots)

票数 67
EN

Stack Overflow用户

发布于 2017-05-10 07:16:08

就其价值而言,在ggplot2版本2.2.1中,堆栈的顺序不再由data.frame中的行顺序决定。相反,它与图例的顺序相匹配,这是由因子中的级别顺序决定的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
d <- data.frame(
  y=c(0.1, 0.2, 0.7),
  cat = factor(c('No', 'Yes', 'NA'), levels = c('NA', 'Yes', 'No')))

# Original order
p1 <- ggplot(d, aes(x=1, y=y, fill=cat)) +
  geom_bar(stat='identity')

# Change order of rows
p2 <- ggplot(d[c(2, 3, 1), ], aes(x=1, y=y, fill=cat)) +
  geom_bar(stat='identity')

# Change order of levels
d$cat2 <- relevel(d$cat, 'Yes')
p3 <- ggplot(d, aes(x=1, y=y, fill=cat2)) +
  geom_bar(stat='identity') 

grid.arrange(p1, p2, p3, ncol=3)

其结果如下:

票数 73
EN

Stack Overflow用户

发布于 2017-05-19 09:32:52

group调用中使用ggplot()智能。这确保了所有层都以相同的方式堆叠。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
series <- data.frame(
  time = c(rep(1, 4),rep(2, 4), rep(3, 4), rep(4, 4)),
  type = rep(c('a', 'b', 'c', 'd'), 4),
  value = rpois(16, 10)
)

ggplot(series, aes(time, value, group = type)) +
  geom_col(aes(fill = type)) +
  geom_text(aes(label = type), position = "stack")
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32345923

复制
相关文章
ggplot2优雅的拆分堆砌条形图
❝本节来介绍如何「对堆砌条形图来进行图形拆分」; 加载R包 library(tidyverse) library(patchwork) 定义主题 theme_niwot <- function(){ theme_minimal()+ theme(axis.text = element_text(color = "black",size = 6), strip.text = element_text(color = "black",hjust = 0,
R语言数据分析指南
2022/09/21
4900
ggplot2优雅的拆分堆砌条形图
ggplot2散点图直方图条形图
熟悉ggplot2绘图,有一本书,可以介绍大家使用,《R数据可视化手册》第二版
生信喵实验柴
2022/10/25
5480
ggplot2散点图直方图条形图
ggplot2优雅绘制别致条形图
❝本节来介绍如何使用「ggplot2结合ggforce」来绘制别具一格的条形图,下面小编通过一个案例来进行展示,图形仅供展示用,希望各位观众老爷能够喜欢。❞
R语言数据分析指南
2023/09/11
2360
ggplot2优雅绘制别致条形图
ggplot2绘制趋势变化堆砌条形图
❝本节来介绍一个小案例,如何根据某数值来对堆砌条形图数据的趋势变化进行排序, 下面小编就通过一个具体案例来介绍如何处理; 加载R包 library(tidyverse) 构建数据 df = data.frame() df = data.frame(matrix(df, nrow=200, ncol=2)) colnames(df) <- c("cluster", "name") df$cluster <- sample(20, size = nrow(df), replace = TRUE) df$fru
R语言数据分析指南
2022/12/20
5600
ggplot2绘制趋势变化堆砌条形图
ggplot2优雅的绘制镶嵌条形图
❝本节来介绍如何使用「ggplot2」来绘制镶嵌条形图,下面通过一个小例子来展示 ❞ 加载R包 library(tidyverse) library(camcorder) library(ggtext) 导入数据 incl_gen_2019 <- read_tsv("incl_gen_2019.xls") %>% mutate(OECD = rowMeans(select(., 3:last_col()))) %>% rename(provisions = 1) %>% add_r
R语言数据分析指南
2022/09/21
5920
ggplot2优雅的绘制镶嵌条形图
这些条形图的用法您都知道吗?
条形图专用于离散变量和数值变量之间的可视化展现,其通过柱子的高低,直观地比较离散变量各水平之间的差异,它被广泛地应用于工业界和学术界。在R语言的ggplot2包中,读者可以借助于geom_bar函数轻松地绘制条形图。对于条形图大家对其的印象是什么呢?又见过哪些种类的条形图呢?在本篇文章我将带着各位网友说道说道有关条形图的哪些品种。
1480
2019/08/05
5.6K0
这些条形图的用法您都知道吗?
ggplot2:正负区分条形图及美化
在数据分析报告中,条形图是很常见的一种表现形式,可以的反应各项之间的比较情况。在实际的应用中,为了更加直接、美观,对图表的展现形式也有了越来越高的要求。通过强大的ggplot2包,也可以画出有特色的条
三猫
2018/04/10
7K1
ggplot2:正负区分条形图及美化
数据视化的三大绘图系统概述:base、lattice和ggplot2
数据可视化是数据分析过程中探索性分析的一部分内容,可以直观展示数据集数据所具有的的特征和关联关系等。R语言不仅提供了基本的可视化系统graphics包,简单的图+修饰,例如:plot、 hist(条形图)、 boxplot(箱图)、 points 、 lines、 text、title 、axis(坐标轴)等;还提供了更加高级的图形系统lattice和ggplot2.
1480
2019/07/10
4.4K0
数据视化的三大绘图系统概述:base、lattice和ggplot2
ggplot2绘制logo版环状条形图
R语言数据分析指南
2023/09/11
3170
ggplot2绘制logo版环状条形图
ggplot2绘制正负分布条形图
❝本节来介绍如何ggplot2来绘制正负分布的条形图,在之前展示案例的基础上进行了一些小的改动,下面通过1个案例来进行展示 加载R包 library(tidyverse) library(grid) library(ggtext) 导入数据 chocolate <- read_csv('chocolate.csv') mean <- mean(chocolate$rating) 数据清洗 df <- chocolate %>% group_by(company_location) %>%
R语言数据分析指南
2022/09/21
8050
ggplot2绘制正负分布条形图
(数据科学学习手札37)ggplot2基本绘图语法介绍
  ggplot2是R语言中四大著名绘图框架之一,且因为其极高的参数设置自由度和图像的美学感,即使其绘图速度不是很快,但丝毫不影响其成为R中最受欢迎的绘图框架;ggplot2的作者是现任Rstudio首席科学家的Hadley Wickham,ggplot2基于Leland Wilkinson在Grammar of Graphics(图形的语法)中提出的理论,取首字母缩写再加上plot,于是得名ggplot,末尾的2是因为Hadley写包的一个习惯——对先前的版本不满意便写一个新版本的名称不变仅在末尾加上2,如reshape2等;
Feffery
2018/05/26
7K0
[会员专享] ggplot2绘制环状正负堆砌条形图
❝「今天VIP群里有观众老爷询问如何绘制环状堆砌条形图」例图如下所示,既然观众老爷们有需求,那小编就来简单写篇文档进行介绍;下面来看具体案例「数据代码已经上传VIP群,请自行下载」 ❞ 例图 图形解读 ❝可以看到就是一张普通的堆砌条形图只不过改为了圆形展示,通过图形我们可以看到数据分为两组,并且每一个样本数值有正负之分,因此与常见的条形图绘制方法无二,只是在于构建极坐标并合理的添加文本;由于小编手里没有合适的数据因此使用R内置数据集来进行展示,下面来看具体细节 ❞ 加载R包 library(tidyv
R语言数据分析指南
2022/09/23
5940
[会员专享] ggplot2绘制环状正负堆砌条形图
ggplot2优雅绘制环状堆砌条形图
R语言数据分析指南
2023/08/18
5150
ggplot2优雅绘制环状堆砌条形图
R语言ggplot2气泡图叠加图片的简单小例子
之前有人在公众号留言问这幅图的实现办法,这个是气泡图,用ggplot2很方便能够实现,但是这个图比较特殊的是横坐标还有对应的图片,当然出图以后用其他软件来编辑是可以实现的,但是对齐之类的可能会比较麻烦。如果能用代码实现就能节省一些时间,正好最近看到一个ggplot2的扩展包 叫做 ggimg 对应的github的主页是 https://github.com/statsmaths/ggimg
用户7010445
2021/08/31
1.3K0
R语言ggplot2气泡图叠加图片的简单小例子
R for data science (第一章) ②
添加其他变量的一种方法是aesthetics。 另一种对分类变量特别有用的方法是将绘图分割为多个子图,每个子图显示一个数据子集。要通过单个变量来划分您的绘图,请使用facet_wrap()。 facet_wrap()的第一个参数应该是一个公式,你用〜后跟一个变量名创建(这里“formula”是R中数据结构的名称,而不是“equation”的同义词)。 传递给facet_wrap()的变量应该是离散的。
用户1359560
2018/12/04
4.4K0
R for data science (第一章) ②
如何在设计中使用色彩叠加
色彩在任何设计中都是一个重要的组成部分。无论你是喜欢明亮、大胆的色彩,或是更喜欢简约的黑白色,如何使用颜色对整体的设计有很大的影响。 设计中使用颜色叠加是运用颜色做陈述的一个方法。这意味着你用一个半透
前朝楚水
2018/04/03
9790
如何在设计中使用色彩叠加
如何在ggplot2图形上添加显著性差异注释?
研究者常常要比较两组数据是否有统计学差异,并且要将这种差异在图形上通过线和注释标注出来。
百味科研芝士
2020/09/04
14.9K0
如何在ggplot2图形上添加显著性差异注释?
ggplot2分组条形图饼图箱线图
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。
生信喵实验柴
2022/10/25
7820
ggplot2分组条形图饼图箱线图
如何更改ggplot2中堆积条形图中的堆积顺序
博客地址:https://www.jianshu.com/u/619b87e54936
用户1359560
2020/03/20
12.4K0
如何在 SwiftUI 中创建条形图
条形图以矩形条的形式呈现数据的类别,其宽度和高度与它们表示的值成比例。本文将展示如何创建一个垂直条形图,其中矩形的高度将代表每个类别的值。
Swift社区
2022/12/12
5.3K0
如何在 SwiftUI 中创建条形图

相似问题

利用R中的ggplot2实现叠加条形图上的叠加线

12

利用ggplot2实现中心叠加条形图的定位值

14

如何在ggplot2中叠加条形图

13

利用ggplot2每天叠加直方图

15

如何利用R控制水平叠加条形图的取值范围

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文