gpt4 book ai didi

r - ggplot2 图的子集数据

转载 作者:行者123 更新时间:2023-12-04 01:56:10 25 4
gpt4 key购买 nike

我正在使用 ggplot2,并且有一个关于如何为绘图划分数据子集的问题。我有以下数据集(示例),需要创建一个线图来比较公司 A 的第一季度数据。

x= 2015 年第一季度、2016 年第一季度、2017 年第一季度y= A 公司的数据

Company Year    Quarter Data
A 2015 Q1 1
B 2015 Q1 2
C 2015 Q1 3
A 2015 Q2 4
B 2015 Q2 5
C 2015 Q2 6
A 2015 Q3 7
B 2015 Q3 8
C 2015 Q3 9
A 2016 Q1 10
B 2016 Q1 11
C 2016 Q1 12
A 2016 Q2 13
B 2016 Q2 14
C 2016 Q2 15
A 2016 Q3 17
B 2016 Q3 18
C 2016 Q3 19

对于此项目中涉及的其他图表,我一直使用此代码:

ggplot(df[df$Company=="A",], aes(x=   , y=   , group=1)) +
geom_line(color='steelblue', size=2) + geom_point(aes(color=Company))+
xlab("Q1 by Year") +
ylab("Data") + theme_minimal(base_size=12)+
ggtitle(" ")+
theme(plot.title=element_text(hjust=0.5, size=16, face="bold"))+
theme(axis.text.x=element_text(size=10, vjust=0.5, color="black", face="bold"),
axis.text.y=element_text(size=10, vjust=0.5, color="black", face="bold"),
axis.title.x=element_text(size=13, face="bold"),
axis.title.y=element_text(size=13, face="bold"))+
theme(aspect.ratio=3/4) + scale_color_brewer(palette="Set2") +
theme(legend.position="none")

关于如何为我需要的图表对这些数据进行子集化有什么建议吗?这是我最挣扎的事情之一。任何帮助,将不胜感激!谢谢!

最佳答案

您可以使用 dplyr 包中的 filter 子集化您想要的数据

library(tidyverse)

df <- read.table(text = "Company Year Quarter Data
A 2015 Q1 1
B 2015 Q1 2
C 2015 Q1 3
A 2015 Q2 4
B 2015 Q2 5
C 2015 Q2 6
A 2015 Q3 7
B 2015 Q3 8
C 2015 Q3 9
A 2016 Q1 10
B 2016 Q1 11
C 2016 Q1 12
A 2016 Q2 13
B 2016 Q2 14
C 2016 Q2 15
A 2016 Q3 17
B 2016 Q3 18
C 2016 Q3 19",
header = TRUE, stringsAsFactors = FALSE)

# subset data
df_select <- df %>%
filter(Company == "A" & Quarter == "Q1")
df_select

#> Company Year Quarter Data
#> 1 A 2015 Q1 1
#> 2 A 2016 Q1 10

ggplot(df_select, aes(x=Year, y=Data, group=1)) +
geom_line(color='steelblue', size=2) + geom_point(aes(color=Company))+
xlab("Q1 by Year") +
ylab("Data") + theme_minimal(base_size=12)+
ggtitle(" ")+
theme(plot.title=element_text(hjust=0.5, size=16, face="bold"))+
theme(axis.text.x=element_text(size=10, vjust=0.5, color="black", face="bold"),
axis.text.y=element_text(size=10, vjust=0.5, color="black", face="bold"),
axis.title.x=element_text(size=13, face="bold"),
axis.title.y=element_text(size=13, face="bold"))+
theme(aspect.ratio=3/4) + scale_color_brewer(palette="Set2") +
theme(legend.position="none")

reprex package 创建于 2018-05-22 (v0.2.0).

关于r - ggplot2 图的子集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50476741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com