我正在创建多个图的叠加。每个图有2列(总共4个图),所有x值都使用相同的单位,所有y值都使用相同的单位。我不确定我的csv格式是否正确,以便R可以独立地叠加每组mL和mAU值,或者是否需要以某种方式读取。
我的表的例子,但它是8列而不是2列
| 毫升|毫金|
| --------------|--------------|
| 瓦尔|瓦尔|
| 瓦尔|瓦尔|
image of my csv
下面是输出的csv数据:
dput(head(chrom))
structure(list(Chrom.1 = c("UV 1_295", "ml", "0", "0.002", "0.005",
"0.007"), X = c("", "mAU", "0.06199001", "0.0617022", "0.06154499",
"0.06143872"), Chrom.1.1 = c("UV 1_295 (1)", "ml", "0", "0.003",
"0.005", "0.007"), X.1 = c("", "mAU", "0.04090555", "0.04144096",
"0.0419024", "0.04236258"), Chrom.1.2 = c("UV 1_295 (2)", "ml",
"0.002", "0.004", "0.006", "0.008"), X.2 = c("", "mAU", "0.02393208",
"0.02436912", "0.02512711", "0.02582231"), Chrom.1.3 = c("UV 1_295 (3)",
"ml", "0.001", "0.003", "0.006", "0.008"), X.3 = c("", "mAU",
"0.0300992", "0.02977365", "0.02929245", "0.02880815")), row.names = c(NA,
6L), class = "data.frame")
我有一个juryrigged版本设置从我读到的其他职位,但它是图形的x值(毫升)作为自己的线,我不想要的。
以下是我到目前为止的情节:
library(readxl)
library(ggplot2)
library(reshape2)
chrom <- read.csv(file = 'Linear Gradient Composite.csv', skip = 2)
colnames(chrom) <- c("mL", "mAU", "mL1","mAU1","mL2", "mAU2", "mL3","mAU3")
chromMelt <- melt(chrom, "mL")
ggplot(chromMelt, aes(mL, value, color = variable)) + geom_line()
使用答案代码更正图:
1条答案
按热度按时间5hcedyr01#
正如你已经猜到的,你的数据没有正确的形状来实现你想要的结果。但这可以通过首先一致地重命名列来解决,即第一对列从
1
开始,并通过添加例如_
作为分隔符来使整形更容易。然后你可以使用tidyr::pivot_longer
来整形数据并创建你的图: