R 最佳拟合散点图和直线-两组
我是新来R的。我有一个关于男子和女子比赛时间的数据集。我要把它画在散点图上。现在我只想添加两行最合适的。一个是我关于男人的数据。一个是我关于女性的数据。有人能帮忙吗R 最佳拟合散点图和直线-两组,r,ggplot2,plot,R,Ggplot2,Plot,我是新来R的。我有一个关于男子和女子比赛时间的数据集。我要把它画在散点图上。现在我只想添加两行最合适的。一个是我关于男人的数据。一个是我关于女性的数据。有人能帮忙吗 #Clear out old variables rm(list=ls()) #Insert Data library(readxl) gender_data <- read_excel("Desktop/gender_data.xlsx") View(gend
#Clear out old variables
rm(list=ls())
#Insert Data
library(readxl)
gender_data <-
read_excel("Desktop/gender_data.xlsx")
View(gender_data)
library(ggplot2)
#Matrix
times_df <- data.frame(gender_data)
print(gender_data)
#data set men data
plot(x = gender_data$ "Olympic year", y =
gender_data$ "Men's winning time (s)",
xlab = "year", ylab = "times", ylim =
c(7,13), col = "green", pch = "*")
#data set women data
points(x = gender_data$ "Olympic year", y =
gender_data$ "Women's winning time (s)",
col = "blue", pch = "`")
以下是我的数据:
gender_data <-
structure(list(`Olympic year` = c(1900, 1904, 1908, 1912, 1916,
1920, 1924, 1928, 1932, 1936, 1940, 1944, 1948, 1952, 1956, 1960,
1964, 1968, 1972, 1976, 1980, 1984, 1988, 1992, 1996, 2000, 2004
), `Men's winning time (s)` = c(11, 11, 10.8, 10.8, NA, 10.8,
10.6, 10.8, 10.3, 10.3, NA, NA, 10.3, 10.4, 10.5, 10.2, 10, 9.95,
10.14, 10.06, 10.25, 9.99, 9.92, 9.96, 9.84, 9.87, 9.85),
`Women's winning time (s)` = c(NA, NA, NA, NA, NA, NA, NA, 12.2,
11.9, 11.5, NA, NA, 11.9, 11.5, 11.5, 11, 11.4, 11.08, 11.07, 11.08,
11.06, 10.97, 10.54, 10.82, 10.94, 10.75, 10.93)),
class = "data.frame", row.names = c(NA, -27L))
尝试使用ggplot2和tidyverse函数。您可以重塑形状以保持年份的长久性,然后使用几何点作为散布样式。关于最佳拟合,您可以使用geom_smooth创建表示最佳拟合的线。另外,您可以避免使用method='lm',并将默认选项保留为less。代码如下:
library(dplyr)
library(tidyr)
library(ggplot2)
#Code
gender_data %>% pivot_longer(-c(`Olympic year`)) %>%
ggplot(aes(x=factor(`Olympic year`),y=value,color=name,group=name))+
geom_point()+
geom_smooth(method = 'lm',se=F)+
theme(axis.text.x = element_text(angle = 90),
legend.position = 'top')+
labs(x='Year',color='Variable')
输出:
默认选项是:
#Code 2
gender_data %>% pivot_longer(-c(`Olympic year`)) %>%
ggplot(aes(x=factor(`Olympic year`),y=value,color=name,group=name))+
geom_point()+
geom_smooth(se=F)+
theme(axis.text.x = element_text(angle = 90),
legend.position = 'top')+
labs(x='Year',color='Variable')
输出:
尝试使用ggplot2和tidyverse函数。您可以重塑形状以保持年份的长久性,然后使用几何点作为散布样式。关于最佳拟合,您可以使用geom_smooth创建表示最佳拟合的线。另外,您可以避免使用method='lm',并将默认选项保留为less。代码如下:
library(dplyr)
library(tidyr)
library(ggplot2)
#Code
gender_data %>% pivot_longer(-c(`Olympic year`)) %>%
ggplot(aes(x=factor(`Olympic year`),y=value,color=name,group=name))+
geom_point()+
geom_smooth(method = 'lm',se=F)+
theme(axis.text.x = element_text(angle = 90),
legend.position = 'top')+
labs(x='Year',color='Variable')
输出:
默认选项是:
#Code 2
gender_data %>% pivot_longer(-c(`Olympic year`)) %>%
ggplot(aes(x=factor(`Olympic year`),y=value,color=name,group=name))+
geom_point()+
geom_smooth(se=F)+
theme(axis.text.x = element_text(angle = 90),
legend.position = 'top')+
labs(x='Year',color='Variable')
输出:
这类问题通常与重塑数据有关。格式应为长格式,数据应为宽格式。请参见关于如何将数据从宽格式重塑为长格式的说明 这是该图的基本R解决方案
library(tidyr)
pivot_longer(gender_data, -`Olympic year`) -> gender_long
plot(value ~ `Olympic year`, gender_long, col = c("blue", "red"))
abline(lm(value ~ `Olympic year`,
data = gender_long,
subset = name == "Men's winning time (s)"),
col = "blue")
abline(lm(value ~ `Olympic year`,
data = gender_long,
subset = name == "Women's winning time (s)"),
col = "red")
这类问题通常与重塑数据有关。格式应为长格式,数据应为宽格式。请参见关于如何将数据从宽格式重塑为长格式的说明 这是该图的基本R解决方案
library(tidyr)
pivot_longer(gender_data, -`Olympic year`) -> gender_long
plot(value ~ `Olympic year`, gender_long, col = c("blue", "red"))
abline(lm(value ~ `Olympic year`,
data = gender_long,
subset = name == "Men's winning time (s)"),
col = "blue")
abline(lm(value ~ `Olympic year`,
data = gender_long,
subset = name == "Women's winning time (s)"),
col = "red")
你能发布样本数据吗?请使用DPU数据的输出编辑问题。或者,如果dputheadgender_数据的输出太大,则为20。@RuiBarradas有帮助吗?@Duck更好吗?@Duck,我得到的错误是找不到%>%函数。你知道这可能是什么吗?@SamLaski哦,是的,试着先加载dplyr和tidyr包。如果未安装,请安装它们。让我知道进展如何!你能发布样本数据吗?请使用DPU数据的输出编辑问题。或者,如果dputheadgender_数据的输出太大,则为20。@RuiBarradas有帮助吗?@Duck更好吗?@Duck,我得到的错误是找不到%>%函数。你知道这可能是什么吗?@SamLaski哦,是的,试着先加载dplyr和tidyr包。如果未安装,请安装它们。让我知道进展如何!你知道我如何改变x轴/y轴来扩展它们吗?@SamLaski在plot调用中尝试参数xlim和ylim。开始绘图时,必须设置轴限制。示例:xlim=C189020。您知道我如何更改x轴/y轴以扩展它们吗?@SamLaski在plot调用中尝试参数xlim和ylim。开始绘图时,必须设置轴限制。示例:xlim=C1890202。