R:在彼此之上绘制点列
R: Plotting Columns of Points on Top of Each Other
我正在使用 R 编程语言。
我有以下数据框:
my_data <- dput(my_data)
structure(list(number_i_1 = c(9.14811534198728, 8.9275657742618,
12.2626425289257, 11.1541226617826, 8.24541227315251, 9.29011983326233,
7.90461585190617, 9.96914166332003, 10.4539377795271, 7.9675796247586,
10.8608573941981, 8.30735339822199, 1.99434617291126, 5.16717357381871,
14.3012387051036), number_i_2 = c(9.82508035629843, 11.337875507462,
8.67260488451123, 11.2037152583314, 9.83831932165026, 10.8805046681,
10.77946718646, 8.7972989662854, 7.98730961084559, 9.63695629657808,
9.83725501468042, 9.35049306826633, 8.03576431691238, 11.8363195684276,
10.3753351372418), number_i_3 = c(10.0297885217794, 8.9150666286516,
8.97084876425627, 10.0812967754046, 10.8353399209151, 12.0396689374212,
8.26039698010734, 10.0164406097398, 9.15875200326082, 10.1580335559883,
10.894410502418, 9.66372987542513, 9.03145984132954, 12.0006448240653,
12.1345128764205), number_i_4 = c(10.6774410989871, 9.00435929666813,
10.245755473788, 9.35137662178161, 10.1632849937946, 10.6229340616454,
9.36988749119136, 9.31309586091883, 9.60326542132072, 10.5866976216766,
9.85136335793758, 9.05675556985556, 10.1394320010747, 10.3089579819193,
8.82461740612389), number_i_5 = c(10.2381148240731, 10.2215440024877,
9.89934619909394, 10.2298103380229, 9.4568626993797, 10.4092658579713,
10.2963788105426, 8.62237136311543, 8.87961854317371, 10.8724614538803,
9.91468834852646, 8.4431553024008, 10.4621972074183, 9.10679142679618,
9.24362927074807)), class = "data.frame", row.names = c("a",
"a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10",
"a11", "a12", "a13", "a14"))
数据看起来像这样:
> head(my_data)
number_i_1 number_i_2 number_i_3 number_i_4 number_i_5
a 9.148115 9.825080 10.029789 10.677441 10.238115
a1 8.927566 11.337876 8.915067 9.004359 10.221544
a2 12.262643 8.672605 8.970849 10.245755 9.899346
a3 11.154123 11.203715 10.081297 9.351377 10.229810
a4 8.245412 9.838319 10.835340 10.163285 9.456863
a5 9.290120 10.880505 12.039669 10.622934 10.409266
我想制作如下图表:
上图中,“1”代表“number_i_1”列的数据,“2”代表“number_i_2”列的数据,以此类推
“红点”代表每列的平均值。
“红线”是一些穿过所有这些点的“最佳拟合线”(例如线性、多项式)。
我能够得到所有列的平均值:
mean_vector = c(mean(my_data$number_i_1), mean(my_data$number_i_2), mean(my_data$number_i_3), mean(my_data$number_i_4), mean(my_data$number_i_5))
但是从这里开始,我不确定如何绘制(例如使用 ggplot2)数据指向我想要的方式。
有人可以告诉我怎么做吗?
谢谢!
利用matplot
和亲戚。
matplot(t(my_data), pch=20, col=1)
matpoints(colMeans(my_data), pch=20, col='red')
matlines(colMeans(my_data), lty=1, col='red')
使用ggplot
:
library(ggplot2)
library(tidyr)
df <- tidyr::gather(my_data, "x")
ggplot(data = df, aes(x = x, y = value, group = 1)) +
geom_point() +
stat_summary(fun = "mean", col = "red") +
geom_smooth(col = "red", se = FALSE)
我正在使用 R 编程语言。
我有以下数据框:
my_data <- dput(my_data)
structure(list(number_i_1 = c(9.14811534198728, 8.9275657742618,
12.2626425289257, 11.1541226617826, 8.24541227315251, 9.29011983326233,
7.90461585190617, 9.96914166332003, 10.4539377795271, 7.9675796247586,
10.8608573941981, 8.30735339822199, 1.99434617291126, 5.16717357381871,
14.3012387051036), number_i_2 = c(9.82508035629843, 11.337875507462,
8.67260488451123, 11.2037152583314, 9.83831932165026, 10.8805046681,
10.77946718646, 8.7972989662854, 7.98730961084559, 9.63695629657808,
9.83725501468042, 9.35049306826633, 8.03576431691238, 11.8363195684276,
10.3753351372418), number_i_3 = c(10.0297885217794, 8.9150666286516,
8.97084876425627, 10.0812967754046, 10.8353399209151, 12.0396689374212,
8.26039698010734, 10.0164406097398, 9.15875200326082, 10.1580335559883,
10.894410502418, 9.66372987542513, 9.03145984132954, 12.0006448240653,
12.1345128764205), number_i_4 = c(10.6774410989871, 9.00435929666813,
10.245755473788, 9.35137662178161, 10.1632849937946, 10.6229340616454,
9.36988749119136, 9.31309586091883, 9.60326542132072, 10.5866976216766,
9.85136335793758, 9.05675556985556, 10.1394320010747, 10.3089579819193,
8.82461740612389), number_i_5 = c(10.2381148240731, 10.2215440024877,
9.89934619909394, 10.2298103380229, 9.4568626993797, 10.4092658579713,
10.2963788105426, 8.62237136311543, 8.87961854317371, 10.8724614538803,
9.91468834852646, 8.4431553024008, 10.4621972074183, 9.10679142679618,
9.24362927074807)), class = "data.frame", row.names = c("a",
"a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10",
"a11", "a12", "a13", "a14"))
数据看起来像这样:
> head(my_data)
number_i_1 number_i_2 number_i_3 number_i_4 number_i_5
a 9.148115 9.825080 10.029789 10.677441 10.238115
a1 8.927566 11.337876 8.915067 9.004359 10.221544
a2 12.262643 8.672605 8.970849 10.245755 9.899346
a3 11.154123 11.203715 10.081297 9.351377 10.229810
a4 8.245412 9.838319 10.835340 10.163285 9.456863
a5 9.290120 10.880505 12.039669 10.622934 10.409266
我想制作如下图表:
上图中,“1”代表“number_i_1”列的数据,“2”代表“number_i_2”列的数据,以此类推
“红点”代表每列的平均值。
“红线”是一些穿过所有这些点的“最佳拟合线”(例如线性、多项式)。
我能够得到所有列的平均值:
mean_vector = c(mean(my_data$number_i_1), mean(my_data$number_i_2), mean(my_data$number_i_3), mean(my_data$number_i_4), mean(my_data$number_i_5))
但是从这里开始,我不确定如何绘制(例如使用 ggplot2)数据指向我想要的方式。
有人可以告诉我怎么做吗?
谢谢!
利用matplot
和亲戚。
matplot(t(my_data), pch=20, col=1)
matpoints(colMeans(my_data), pch=20, col='red')
matlines(colMeans(my_data), lty=1, col='red')
使用ggplot
:
library(ggplot2)
library(tidyr)
df <- tidyr::gather(my_data, "x")
ggplot(data = df, aes(x = x, y = value, group = 1)) +
geom_point() +
stat_summary(fun = "mean", col = "red") +
geom_smooth(col = "red", se = FALSE)