首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在水平轴散射图(Ggplot2)中为每个类别添加两条线

在水平轴散射图(Ggplot2)中为每个类别添加两条线
EN

Stack Overflow用户
提问于 2015-11-29 13:00:22
回答 1查看 859关注 0票数 1

我有这个数据集:

代码语言:javascript
运行
AI代码解释
复制
workdataset <- data.frame(dadedu=rep(c("ISCED 1 & 2", "ISCED 3 & 4", "ISCED 5 & 6"),each=2),
                          socialorigin=rep(c(1,0),times=3),
                          Level = rep(c("Below ISCED 1", "ISCED 1", "ISCED 2", "ISCED 3", "ISCED 4","ISCED 5", "ISCED 6"), each=6),
                          Prob = rnorm(42))

我制作了这个情节:

代码语言:javascript
运行
AI代码解释
复制
ggplot(workdataset, aes(x = Level, y = Prob, colour = dadedu)) +
        geom_point(aes(group=dadedu, size=0.2)) + geom_line()

正如您在水平轴的每个类别中所看到的,有两个颜色相同的点通过一条线连接起来。不是这样的,我试着为每个类别有两条线,例如,两个红色点都与一条线相连,其他颜色也是如此。然后,用不同形状的点来区分类别中的两条线。

我一直在玩facet_grid,但我仍然不太熟悉ggplot2,而且我似乎无法理解它。

任何帮助都是非常感谢的。

谢谢,

编辑:对不起,我没有正确解释自己,但我会再试一次。因此,正如您在图中所看到的,水平轴中有几个类别( ISCED 1,ISCED 2,等等)。对于每个类别,现在有一个垂直线包含6个点(2个红色,2个绿色和2个蓝色)。1红色属于社会出身=1,另一红色等于社会本源= 0。我想要的不是一条6点的垂直线,而是两条每条3点的垂直线。一条垂直线是socialorigin=1,另一条是socialorigin=0,然后用一条线把垂直线1上的红点和垂直线2上的红点连接起来,以此类推。它适用于横轴中的所有类别( ISCED 1、ISCED 2等)。如果这还不清楚,我将尝试显示一个图像,以模仿我想要的。

希望这能让事情更清楚。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-29 13:23:48

编辑:我想就是这个?这需要一些黑客的工作,因为我们是用一条线连接躲避点。首先,让我们构建基本的地块:

代码语言:javascript
运行
AI代码解释
复制
p <- ggplot(workdataset, aes(x = Level, y = Prob, group = socialorigin, colour = dadedu)) + 
         geom_point(aes(shape = dadedu), position = position_dodge(width = 0.50))

现在,我们希望使用ggplot_build来获取数据:

代码语言:javascript
运行
AI代码解释
复制
newdat <- ggplot_build(p)$data[[1]]

newdat现在是x和y,组和颜色为我们的情节。我们需要根据形状、颜色和x的组合(这里由于躲避而四舍五入)获得一个新的var来分组:

代码语言:javascript
运行
AI代码解释
复制
newdat$group2 <- paste0(newdat$shape, newdat$colour, round(newdat$xmin))

然后把它添加到情节中:

代码语言:javascript
运行
AI代码解释
复制
p + geom_line(data = newdat,aes(x,y, group = group2), colour = newdat$colour)

先前的答覆如下:

我认为您需要为socialorigindadedu的组合创建一个新变量

代码语言:javascript
运行
AI代码解释
复制
workdataset$comb <- paste0(workdataset$dadedu, workdataset$socialorigin)

然后,我们可以使用它对线条进行分组,并使用socialorigin生成点形状:

代码语言:javascript
运行
AI代码解释
复制
library(ggplot2)
ggplot(workdataset, aes(x = Level, y = Prob, colour = dadedu)) +
    geom_point(aes(shape = factor(socialorigin)), size = 3) +
    geom_line(aes(group = comb))

这意味着:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33988071

复制
相关文章
强大的分组:给每个类别分别添加索引编号
在前面讲《怎么在每个科目(分类)内容的后面加3个空行?还涉及分组依据的核心原理……》的时候,提到“分组依据”功能的核心原理,在此重复一下:分组的过程就是对同一类内容先分好,或者说挑出了每一组所包含的所有内容,然后再针对各类内容分别进行后续的聚合(计算)。
大海Power
2021/08/30
9240
ggplot2在系统发育树上添加饼图
❝最近看到一篇论文通过系统发育树添加饼图来展示数据,本节来简单介绍一下如何绘制一个类似的图。下面小编通过一个小案例来进行展示,图形过程仅供展示用,希望各位观众老爷能够喜欢,代码可直接复制粘贴运行。 ❞
R语言数据分析指南
2023/09/28
4600
ggplot2在系统发育树上添加饼图
如何使用 ggplot2 绘制双轴分离图?
最近科研绘图中,需要解决这么一个需求。如何将下图中的左图(低配版)转化为右图(高配版, x,y 轴分离)。
庄闪闪
2022/02/16
1.9K0
如何使用 ggplot2 绘制双轴分离图?
为 markdown 添加图床
树根
2017/08/04
5.1K3
为 markdown 添加图床
R语言ggplot2作图的时候给坐标轴添加文本π
今天用ggplot2作图y轴的标题想实现上图红框里的形式,查了一下如何实现 记录一下代码
用户7010445
2021/08/31
1.5K0
R语言ggplot2作图的时候给坐标轴添加文本π
Python-matplotlib 箱线图绘制
箱线图(Boxplot) 是一种用作显示一组数据分散情况资料的统计图表,本期推文就如何使用matplotlib和seaborn 绘制出高度定制化的箱线图做出详细的讲解。
DataCharm
2021/02/22
4.4K0
Python-matplotlib 箱线图绘制
基础知识 | R语言绘图基础之柱形图
在视觉性吸引方面,人类绝对是动物界的另类。当一张一张数据分析的统计表摆在眼前时,人们并不能快速的洞察其中的关系。然而,当一张张精心绘制图形展现零散数据时,往往会让人兴致盎然,阔然开朗,并能够快速的从视觉角度呈现洞察关系,作出非常有意义的比较。
黑妹的小屋
2020/08/06
1.9K0
ggplot2修改坐标轴
默认情况 以下以ToothGrowth数据为例。 library(ggplot2) data(ToothGrowth) ToothGrowth$dose <- factor(ToothGrowth$d
生信编程日常
2020/04/23
2.7K0
R语言ggplot2画热图的时候在色块上添加文本
今天的推文没有详细介绍代码,代码的介绍会以视频形式放到B站,欢迎大家关注我的B站 小明的数据分析笔记本 https://space.bilibili.com/355787260 image.png 首先是示例数据的格式 画热图的数据 image.png 用来添加文本的数据 image.png 如果还有其他文本需要添加,可以再准备一份数据 image.png 加载需要用到的R包 library(ggplot2) library(tidyverse) #install.packages("s
用户7010445
2021/10/13
2K0
R语言ggplot2画柱形图展示GO富集分析结果—给坐标轴文本添加框线
有朋友问到这个GO富集分析的柱形图坐标轴文本的框线是怎么实现的。我目前的思路是用geom_text()函数添加文本代替原来的坐标轴文本,然后用geom_rect()函数添加矩形框线。(这个框线是一个平行四边形,geom_rect()函数画的是矩形,如果要画平行四边形可以借助geom_polygon()这个函数实现,但是平行四边形四个顶点的的坐标不太好确定)整体试下来虽然能够实现,但稍显麻烦,暂时想不到比较方便的办法。目前看来还是先出图,然后借助其他修图工具来添加框线可能会相对简单一些。
用户7010445
2023/09/25
8710
R语言ggplot2画柱形图展示GO富集分析结果—给坐标轴文本添加框线
ggplot2柱形图添加显著性星号
第一步:准备数据 将数据整理到excel image.png 第一列是变量名 第二列是变量对应的数值 第二步:数据读入使用ggplot2作图 在excel将数据选中复制,然后运行代码 df<-rea
用户7010445
2020/03/03
5.3K0
ggplot2优雅绘制热图添加双箭头注释
❝本节来介绍如何使用「ggplot2」来绘制热图并添加双向箭头添加注释,下面小编通过一个案例来进行展示,图形仅供展示用,希望各位观众老爷能够喜欢。。❞
R语言数据分析指南
2023/09/11
6490
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
7.2K0
SwiftUI中的水平条形图
水平条形图以矩形条的形式呈现数据类别,其宽度与它们所代表的数值成正比。本文展示了如何在垂直条形图的基础上创建一个水平柱状图。
韦弦zhy
2022/11/07
5.1K0
SwiftUI中的水平条形图
ggplot2--R语言宏基因组学统计分析(第四章)笔记
ggplot2可以用来创建优雅的图形,由于它的灵活,简洁和一致的接口,可以提供美丽、可直接用来发表的图形,吸引了许多用户,特别是科研领域的用户。ggplot2使用grid包来提供一系列的高水平的函数,并将其延伸为图形语法,即独立指定绘图组件,并将它们组合起来,以构建我们想要的任何图形显示。图形语法包含6个主要成分:data, transformations, element, scales, guide和 coordinate system。图层图形语法源于多层数据构建图形的想法。它定义了下表中的图形组分:data, aesthetic mappings, statistical transformations, geometric objects, position adjustment, scales, coordinate system 和 faceting(数据、几何映射、统计变换、几何对象、位置调整、比例、坐标和面)。数据、几何映射、统计变换、几何对象、位置调整形成一个图层,一个图可以有多个图层。
用户1075469
2021/07/05
5.4K0
如何通过R语言制作BBC风格的精美图片
在BBC数据团队开发了一个R包,以ggplot2内部风格创建可发布出版物的图形,并且使新手更容易到R创建图形。 例如:
用户1359560
2019/11/12
13.5K0
(1)显示每个类别最新更新的数据
在项目中经常遇到求每个类别最新显示的数据,比如显示某某某类别最新更新的5条数据。特写下这个sql记录于此:
跟着阿笨一起玩NET
2018/09/18
8870
(1)显示每个类别最新更新的数据
「R」ggplot2数据可视化
R有几种不同的系统用来产生图形,但ggplot2是最优雅而多变的那一种。ggplot2实现了图形语法,一种描述和构建图形的逻辑系统。通过ggplo2,我们能够快速学习,多处应用。
王诗翔呀
2020/07/03
7.8K0
ggplot2优雅的给传统气泡图添加新元素
❝本节来介绍如何使用ggplot2来给常见的气泡图添加一点新的元素,下面通过1个案例来进行展示; 加载R包 library(tidyverse) 数据清洗 df %>% read_csv('data.txt') %>% mutate(CL = 8 - CL, PR = 8 - PR) %>% filter(year %in% c(1995,2020)) %>% group_by(country) %>% mutate(gap_cl = CL - lag(CL),
R语言数据分析指南
2022/09/21
4720
ggplot2优雅的给传统气泡图添加新元素
在matplotlib中关闭绘图轴的方法
# Keep making random walks, as long as the program is active
用户7718188
2021/10/08
2.4K0

相似问题

ggplot2中的叠加散射图

10

WinForms散射图反向Y轴

14

R散射图y轴分组

14

matplotlib散射图x轴标签

36

ggplot2散射图和标签

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档