Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将不同类型的图组合在一起(R)

将不同类型的图组合在一起(R)
EN

Stack Overflow用户
提问于 2021-01-11 17:22:36
回答 1查看 499关注 0票数 0

我正在努力学习如何在R编程语言中将不同类型的图形组合在一起。假设我有以下数据:

代码语言:javascript
运行
AI代码解释
复制
library(dplyr)
library(ggplot2)

date= seq(as.Date("2014/1/1"), as.Date("2016/1/1"),by="day")

var <- rnorm(731,10,10)


group <- sample( LETTERS[1:4], 731, replace=TRUE, prob=c(0.25, 0.22, 0.25, 0.25) )

data = data.frame(date, var, group)

data$year = as.numeric(format(data$date,'%Y'))
data$year = as.factor(data$year)

我总结了这些数据,生成了不同类型的图表。例如:

代码语言:javascript
运行
AI代码解释
复制
1) Pie Charts:

    ###Pie
    
    Pie_2014 <- data %>% filter((data$year == "2014"))
    Pie_2014 %>% 
      group_by(group) %>% 
      summarise(n = n())
    
    Pie_2014_graph = ggplot(Pie_2014, aes(x="", y=n, fill=group)) +
      geom_bar(stat="identity", width=1) +
      coord_polar("y", start=0) +ggtitle( "Pie Chart 2014") 
    
    
    Pie_2015 <- data %>% filter((data$year == "2015"))
    Pie_2015 %>% 
      group_by(group) %>% 
      summarise(n = n())
    
    Pie_2015_graph = ggplot(Pie_2015, aes(x="", y=n, fill=group)) +
      geom_bar(stat="identity", width=1) +
      coord_polar("y", start=0) +ggtitle( "Pie Chart 2015") 
    
    
    Pie_total = data %>% 
      group_by(group) %>% 
      summarise(n = n())
    
    Pie_total_graph = ggplot(data, aes(x="", y=n, fill=group)) +
      geom_bar(stat="identity", width=1) +
      coord_polar("y", start=0) +ggtitle( "Pie Chart Average") 

  1. 条形图:

Bar_years = data %>% group_by(年,组) %>%汇总(平均值=均值(Var)) Bar_years_plot = ggplot(Bar_years,aes(fill=group,y=mean,x=year)) + geom_bar(position="dodge",stat="identity") +ggtitle(“所有年份的条形图”) Bar_total = data %>% group_by(group) %>%汇总(mean=n() Bar_total_plot =ggplot(group_by,aes,x=year))(group_by,,(fill=group)+ geom_bar(stat="identity")+theme_minimal() +ggtitle(“条形图平均”)

  1. 时间序列情节:

代码语言:javascript
运行
AI代码解释
复制
New <- data %>%
  mutate(date = as.Date(date)) %>%
  group_by(group, month = format(date, "%Y-%m")) %>%
  summarise( Mean = mean(var, na.rm = TRUE), Count = n())

#Plot
ts_1 <- ggplot(New) +
  geom_line(aes(x=month, y=Mean, colour=group,group=1))+
  scale_colour_manual(values=c("red","green","blue", "purple"))+
  theme(axis.text.x = element_text(angle=90))  + ggtitle("time seres 1")

ts_2 <- ggplot(New) +
  geom_line(aes(x=month, y=Count, colour=group,group=1))+
  scale_colour_manual(values=c("red","green","blue", "purple"))+
  theme(axis.text.x = element_text(angle=90)) + ggtitle("time seres 2")

所有这些图表都工作得很完美。现在我正在寻找一种更好的方式来呈现它们。我的问题是:是否可以使用R和ggplot2将所有这些图整齐地排列到一个窗口中?

例如:

第1行:所有派图(Pie_2014_graph,Pie_2015_graph,pie_total_graph)

第2行:所有条形图(Bar_years_plot,Bar_total_plot)

第3行:所有时间序列图(ts_1,ts_2)

现在,我单独创建所有这些图表,将它们粘贴到MS油漆中,然后手动重新排列它们。

像这样吗?

我们非常感谢所有的帮助。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 05:11:12

上面发布的代码失败了,因为您试图使用变量n,但是在summarise(n = n())步骤之后没有为饼图数据分配数据。

您可以直接将汇总的数据导入ggplot,也可以使用这样的方法来分配中间步骤;

代码语言:javascript
运行
AI代码解释
复制
Pie_2014 <- data %>% 
  filter((data$year == "2014")) %>% 
  group_by(group) %>% 
  summarise(n = n())

Pie_2014_graph = ggplot(Pie_2014, aes(x="", y=n, fill=group)) +
  geom_bar(stat="identity", width=1) +
  coord_polar("y", start=0) +ggtitle( "Pie Chart 2014") 


Pie_2015 <- data %>% 
  filter((data$year == "2015")) %>% 
  group_by(group) %>% 
  summarise(n = n())

Pie_2015_graph = ggplot(Pie_2015, aes(x="", y=n, fill=group)) +
  geom_bar(stat="identity", width=1) +
  coord_polar("y", start=0) +ggtitle( "Pie Chart 2015") 


Pie_total = data %>% 
  group_by(group) %>% 
  summarise(n = n())

Pie_total_graph = ggplot(Pie_total, aes(x="", y=n, fill=group)) +
  geom_bar(stat="identity", width=1) +
  coord_polar("y", start=0) +ggtitle( "Pie Chart Average") 

在那之后,用拼凑的包把子情节安排在一起是非常简单的。像这样的事情会让你更亲近;

代码语言:javascript
运行
AI代码解释
复制
# combine plots

# install.packages('patchwork')
library(patchwork)

(Pie_2014_graph | Pie_2015_graph | Pie_total_graph) /
  (Bar_years_plot | Bar_total_plot) / 
  (ts_1 | ts_2)

编辑:下面是对非修补程序替代方案的请求,下面是让您开始使用牛仔的版本。

代码语言:javascript
运行
AI代码解释
复制
library(cowplot)

# arrange subplots in rows
top_row <- plot_grid(Pie_2014_graph, Pie_2015_graph, Pie_total_graph, nrow = 1)
middle_row <- plot_grid(Bar_years_plot, Bar_total_plot)
bottom_row <- plot_grid(ts_1, ts_2)

# arrange our new rows into combined plot
p <- plot_grid(top_row, middle_row, bottom_row, nrow = 3)
p
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65676788

复制
相关文章
R- 组合图(折线+条形图)绘制
就是下面这张图,在途中用条形图展示了不同季节样本浮游动物的组成情况,同时使用带误差棒的折线图来表示浮游动物生物量的变化,相当于在一幅图中同时展示了群落的相对丰度和绝对丰度。
DataCharm
2021/02/22
3.3K0
R- 组合图(折线+条形图)绘制
76-R编程13-批量将不同类型数据标记并保存
利用assign 函数,批量命名变量var1..n,因为我是一个Rstudio 的保护者,这样会搞得env 栏目很丑,就不举例子了。
北野茶缸子
2021/12/27
2790
LeetCode 1726. 同积元组(排列组合)
给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b = c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素,且 a != b != c != d 。
Michael阿明
2021/02/19
2480
R语言之可视化①⑧子图组合patchwork包目录正文
-可以通过将部分子图包装在括号中来制作嵌套布局。在这种情况下,画布布局的范围为不同的嵌套级别。
用户1359560
2018/12/28
1.2K0
[Python]常用的组合数据类型
原文链接:http://blog.csdn.net/humanking7/article/details/45276769
祥知道
2020/03/10
9170
简单将ggplot多个图排列在一起
ClonEvol: clonal ordering and visualization in cancer sequencing文献里面CloneEvol包里面boxplot.r函数
用户1680321
2020/03/08
1.5K0
组合类型与类型保护_TypeScript笔记9
Object.assign能把source: U身上的可枚举属性浅拷贝到target: T上,因此返回值类型为T & U
ayqy贾杰
2019/06/12
1.6K0
使用canvas组合多图
html展示 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <img class="compoundImg" sr
友儿
2022/09/13
6720
R语言 绘图组合布局grid/layout
par(mfrow=c(2,2)),可以理解将绘图区域分割为2x2的矩阵区域,另可参照《R语言实战》3.5图形的组合
拴小林
2020/07/10
2.1K0
R语言 绘图组合布局grid/layout
使用R语言构造投资组合
原作者: 邓一硕 来自: 格物堂 构造投资组合是金融投资分析中历久弥新的问题。多年以来,学界、业界提出诸多对投资组合进行优化的方法。比如,最经典的基于收益率均值和 收益率波动性进行组合优化,由于马克维滋提出用收益率方差表示收益率的波动性,所以,这种方法又称为的$$ \sum M-V $$方法,即 Mean-Variance 方法的缩写;后来,又衍生出基于夏普比率(Sharp Ratio)的投资组合优化方法;近年来,随着VaR (Value at Risk) 和 CVaR(Conditional Vaule
机器学习AI算法工程
2018/03/13
3.4K0
使用R语言构造投资组合
跟着Nature Communications学作图:R语言ggplot2气泡图组合水平柱形图完整示例
https://www.nature.com/articles/s41467-022-31724-3
用户7010445
2023/01/06
6350
跟着Nature Communications学作图:R语言ggplot2气泡图组合水平柱形图完整示例
是Excel的图,不!是R的图
excel作为一个强大的统计工具,自身包含着一部分数据可视化的功能。R作为可视化的大势,自然也可以画出这些图,有一篇就通过ggplot2包进行了部分总结,甚是有趣,小编复刻学习了一番,现对代码做简单注释,以作分享。
生信宝典
2019/08/01
4.1K0
是Excel的图,不!是R的图
LeetCode 102 | 将二叉树中同层的元素归并在一起
今天是LeetCode专题第65篇文章,我们一起来聊聊LeetCode第102题Binary Tree Level Order Traversal(二叉树层次归类)。
TechFlow-承志
2020/09/01
5770
目前最全的R语言-图片的组合与拼接
李誉辉,四川大学硕士在读,研究数据分析与可视化,以及网络爬虫。誉辉兄最近出的文章都是很系统的,从R ggplot2的基础讲解到三维数据可视化plot3D,文章都整理讲解得很全面系统,我本人也是很喜欢这样的文章,故而推荐给大家。
生信宝典
2019/09/29
5.5K0
目前最全的R语言-图片的组合与拼接
跟着Nature Methods学画图:R语言ggplot2+ggtree+aplot画气泡图组合聚类树图
论文对应的代码是公开的 https://github.com/ajwilk/2020_Wilk_COVID
用户7010445
2021/03/15
2.3K0
R数据类型
注:“=”可以任何时候替代赋值符号“<-”,但反过来并不是。加个括号之后可以让赋值和输出一起实现。
用户10700148
2023/08/25
1270
牛客提高R5 A.同余方程
设\(solve(x, y)\)表示\(i \in [0, x], j \in [0, y]\)满足题目要求的方案数
attack
2018/10/22
3490
Python指南:组合数据类型
Python提供了5中内置的序列类型:bytearray、bytes、list、str与tuple,序列类型支持成员关系操作符(in)、大小计算函数(len())、分片([]),并且是可可迭代的。
王强
2018/08/09
2.8K0
Python指南:组合数据类型
【R】蜜蜂图beeswarm
蜜蜂图或蜂群图(beeswarm)这个名字,大家可能比较陌生,但是大家肯定都见过他的尊容。下面这张图就是一个典型的蜜蜂图。因为看上去像一群飞舞的蜜蜂而得名。
生信交流平台
2022/09/21
6660
【R】蜜蜂图beeswarm
R语言中的数据类型
最近在分析数据的时候,发现R语言中存在很多的数据类型,并且这些数据类型不同其应用与意义也不相同,下面我们列举最用的一些数据类型及在R中的函数:
一粒沙
2019/07/31
7980
R语言中的数据类型

相似问题

用R将不同的表组合在一起

16

如何组合R中的(Add)2同维矩阵?

11

R中的图组合

13

R in图中的组合图

17

将不同类型的多个numpy数组组合在一起

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文