R:如何绘制Excel表格(matrix)与R

我得到这个问题我还没有find如何解决它。 我想绘制所有值“MWT”,“ MW2和“MW3”,以“DHT + Procymidone”为函数。 如何在graphics中绘制所有这些值,以便获得3条不同的曲线(不同的颜色和不同的数字,如曲线1,2,…)? 我希望X值(“DHT + Procymidone”)的标签像-10,-9,…,-4而不是1,00E-10,…

 DHT + Procymidone MW 1 MW 2 MW 3 1,00E-10 114,259526780335 111,022461066274 213,212408408682 1,00E-09 115,024187788314 111,083316791613 114,529425136628 1,00E-08 110,517449986348 107,867941606743 125,10230718665 1,00E-07 100,961311263444 98,4219995773135 116,045168653416 1,00E-06 71,2383604211297 73,539659636842 50,3213799775309 1,00E-05 20,3553333652104 36,1345771905088 15,42260866106 1,00E-04 4,06189509055904 18,1246447874679 10,1988107887318 

为了方便起见,我缩短了你的数据框架,所以这里是一个例子:

 mydat <- data.frame(DHT_Procymidone = c(-10, -9, -8, -7, -6, -5, -4), MW1 = c(114, 115, 110, 100, 72, 20, 4), MW2 = c(111, 111, 107, 98, 73, 36, 18), MW3 = c(213, 114, 123, 116, 50, 15, 10)) library(tidyr) library(ggplot2) mydf <- gather(mydat, "grp", "MW", 2:4) ggplot(mydf, aes(x = DHT_Procymidone, y = MW, colour = grp)) + geom_line() 

这给出了以下情节:

在这里输入图像说明

要使用ggplot,你的数据需要是长格式的。 gather为你做这个,将列MW1-MW3附加到一列中,而列名称作为新的列值添加到grp列中。 该组列允许识别不同的组,即图中的不同颜色的线。

根据DHT + Procymidone的types,例如,可以使用format(..., scientific = FALSE)将其转换为数字,但是这会导致-0.0000000001(而不是-10)。

但是,如果这个数据列是一个字符向量(你可以用as.character强制),这可能会工作:

 a <- "1,00E-10" sub("1,00E", "", a, fixed = TRUE) > [1] "-10" 

作为不依赖ggplot的@ Daniel的替代答案(感谢Daniel提供可重现的数据)。

 mydat <- data.frame(DHT_Procymidone = c(-10, -9, -8, -7, -6, -5, -4), MW1 = c(114, 115, 110, 100, 72, 20, 4), MW2 = c(111, 111, 107, 98, 73, 36, 18), MW3 = c(213, 114, 123, 116, 50, 15, 10)) plot(mydat[,2] ~ mydat[,1], typ = "l", ylim = c(0,220), xlim = c(-10,-2), xlab = "DHT Procymidone", ylab = "MW") lines(mydat[,3] ~ mydat[,1], col = "blue") lines(mydat[,4] ~ mydat[,1], col = "red") legend(x = -4, y = 200, legend = c("MW1","MW2","MW3"), lty = 1, bty = "n", col = c("black","blue","red")) 

要更改轴标签,请参阅xlabylab的文本。 要更改轴限制,请参见xlimylim