我有一个数据框
dw.05.art.rel.ch dw.10.art.rel.ch dw.15.art.rel.ch dw.20.art.rel.ch dw.25.art.rel.ch dw.30.art.rel.ch dw.35.art.rel.ch dw.40.art.rel.ch
0.25 2.14751794 1.3573794 1.378441 1.0225707 1.250907 1.3704892 1.018457 1.1266434
0.5 0.06980416 1.5074681 1.618793 1.3340371 1.153321 1.1491761 1.015098 1.0486423
0.75 -0.53753859 0.5501804 1.215985 1.1780073 1.276440 1.1058739 1.128350 0.9961578
1.00 -0.28508794 0.4966175 1.049642 0.9306377 1.008549 0.9741328 1.037897 0.9515636
dw.45.art.rel.ch dw.50.art.rel.ch
0.25 1.0668396 1.0484025
0.5 1.0080182 1.0074631
0.75 0.9927887 0.9398075
1.00 0.9711958 1.0396354
我想从单个数据框创建多个散点图。每行中的值(例如,0.25)是Y值并且相对于作为列名中的数字的X值绘制(例如,“dw.05.art.rel.ch”是5)。附件是我在excel中制作的一个例子。我坚持如何创建X值以及如何生成多个图。
答案 0 :(得分:2)
您也可以使用ggplot2
。首先,让我们融入"从宽到长格式的数据,并从列名称中提取x值。假设您的数据框名为dat
:
library(dplyr)
library(reshape2)
library(ggplot2)
dat.m = dat %>%
add_rownames("group") %>%
melt(id.var="group") %>%
mutate(x = as.numeric(substr(variable, 4,5)))
单个图表上的所有行:
ggplot(dat.m, aes(x, value, colour=group)) +
geom_point() +
geom_line() +
theme_bw()
多个面板:
ggplot(dat.m, aes(x, value)) +
facet_grid(. ~ group) +
geom_point() +
geom_line() +
theme_bw()
以下是图表的样子:
您还可以为group
的每个值创建单独的图表:下面的代码会在名为group
的列表中保存所有图表(每个值pl
一个)。您可以将它们打印到控制台,将它们保存为pdf文件等。
pl = sapply(sort(unique(dat.m$group)), function(i) {
ggplot(dat.m[dat.m$group==i, ], aes(x, value)) +
facet_wrap(~ group) +
geom_point() +
geom_line() +
theme_bw()
}, simplify=FALSE)
答案 1 :(得分:0)
您的情况非常简单,因为列名是常规的。假设您的数据框名为df:
for (i in 1:dim(df)[1]){
plot(as.numeric(substr(names(df), 4, 5)),df[i,])
}
这将使所有绘图都具有基本格式。
或者
matplot(seq(ncol(df)) * 5, t(df), type = 'l')
或者
plot(c(5, 40), c(0, max(df)), type = 'n')
for (ii in 1:nrow(df))
lines(seq(ncol(df)) * 5, unlist(df[ii, ]), col = ii)
数据强>
df <- read.table(header = TRUE, text = "dw.05.art.rel.ch dw.10.art.rel.ch dw.15.art.rel.ch dw.20.art.rel.ch dw.25.art.rel.ch dw.30.art.rel.ch dw.35.art.rel.ch dw.40.art.rel.ch
0.25 2.14751794 1.3573794 1.378441 1.0225707 1.250907 1.3704892 1.018457 1.1266434
0.5 0.06980416 1.5074681 1.618793 1.3340371 1.153321 1.1491761 1.015098 1.0486423
0.75 -0.53753859 0.5501804 1.215985 1.1780073 1.276440 1.1058739 1.128350 0.9961578
1.00 -0.28508794 0.4966175 1.049642 0.9306377 1.008549 0.9741328 1.037897 0.9515636")