R 如何在一个图形中绘制多个线条图

R 如何在一个图形中绘制多个线条图,r,ggplot2,linegraph,R,Ggplot2,Linegraph,我想用R(ggplot2)绘制我的图形。我想要一个像图2这样的线图 以下是我的个人资料: B50K,B50K+1000C50K,B50K+2000C50K,B50K+4000C50K,B50K+8000C50K,gen,xaxile 0.3795,0.4192,0.4675,0.5357,0.6217,T18-Yield,B50K 0.3178,0.3758,0.4249,0.5010,0.5870,T20-Yield,B50K+1000C50K 0.2795,0.3266,0.3763,0.4

我想用R(
ggplot2
)绘制我的图形。我想要一个像图2这样的线图

以下是我的个人资料:

B50K,B50K+1000C50K,B50K+2000C50K,B50K+4000C50K,B50K+8000C50K,gen,xaxile
0.3795,0.4192,0.4675,0.5357,0.6217,T18-Yield,B50K
0.3178,0.3758,0.4249,0.5010,0.5870,T20-Yield,B50K+1000C50K
0.2795,0.3266,0.3763,0.4636,0.5583,T21-Yield,B50K+2000C50K
0.2417,0.2599,0.2898,0.3291,0.3736,T18-Fertility,B50K+4000C50K
0.2002,0.2287,0.2531,0.2962,0.3485,T19-Fertility,B50K+8000C50K
0.1642,0.1911,0.2151,0.2544,0.2951,T20-Fertility
***-->分隔符是“,”。顺便说一下,我没有任何有用的.r脚本,这将是有益的或有用的

插图显示了我在Microsoft word中的图形

我已经通过互联网尝试了几个脚本,但没有一个是有效的


你能帮我用一个.r脚本来读取我的数据文件(如img1)并绘制我的数据(如图所示)。

诀窍是重塑数据(使用
重塑2
软件包中的
melt
),这样你就可以轻松地将颜色和线型映射到
gen

# Your data - note i also added an extra comma after the fifth column in row 6.
# It would be easier if you gave data using dput as described in comments above - thanks
dat <- read.table(text="B50K,B50K+1000C50K,B50K+2000C50K,B50K+4000C50K,B50K+8000C50K,xaxile,gen
0.3795,0.4192,0.4675,0.5357,0.6217,B50K,T18-Yield
0.3178,0.3758,0.4249,0.5010,0.5870,B50K+1000C50K,T20-Yield
0.2795,0.3266,0.3763,0.4636,0.5583,B50K+2000C50K,T21-Yield
0.2417,0.2599,0.2898,0.3291,0.3736,B50K+4000C50K,T18-Fertility
0.2002,0.2287,0.2531,0.2962,0.3485,B50K+8000C50K,T19-Fertility
0.1642,0.1911,0.2151,0.2544,0.2951,,T20-Fertility", 
header=T, sep=",", na.strings="")

# load the pckages you need
library(ggplot2)
library(reshape2)

# assume xaxile column is unneeded? - did you add this column yourself? 
dat$xaxile <- NULL

# reshape data for plotting
dat.m <- melt(dat)

# plot
ggplot(dat.m, aes(x=variable, y=value, colour=gen, 
                  shape=gen, linetype=gen, group=gen)) +
                  geom_point() + 
                  geom_line() 
#您的数据-注意,我还在第6行的第五列后面添加了一个额外的逗号。
#如果您使用上面评论中描述的dput提供数据会更容易-谢谢

dat您是否有可能编辑您的问题,将数据文件粘贴为文本而不是图像链接?或者更好的是,发布一个完整的可复制示例?共享数据的一种方法是使用
dput
。要给出数据的前20行,您需要发布
dput的结果(yourdata[1:20,])
。如果您还可以共享您尝试创建绘图的代码,那就太好了。感谢Dear Ben和user20650,我的文章是通过导入我的数据编辑的,并用“,”替换了制表符分隔符。如果有任何帮助,我们将不胜感激。为什么数据的最后一行比其他行少包含一个元素?因为第六列的元素是五个。事实上,第六列是图中的x轴。除标题外,前3行是实线(在R图中应为实线),第4、5和6行是上图中的虚线(在R图中应为虚线)。感谢用户20650。这是伟大的,你拯救了这一天!这正是我所希望的数字。问题:图中“gen”元素的顺序与数据集不同。我们可以把它作为图中的数据集吗?不客气。查看
gen
因子
级别的顺序<代码>级别(dat.m$gen)
。在绘制do
dat.m$gen@user1677032之前,您可以使用
?factor
命令ie更改顺序。如果答案对您有效,如果您接受答案,我们将不胜感激。这将为未来的读者提供有关解决方案价值的线索。另请参阅此帮助页:再次感谢,但基于上面的脚本:如何删除图例标题?以及如何保持$xaxile在x轴中的原样。因为,例如,在图中B50K+1000C50K显示为B50K.1000C50K。事实上,“+”已更改为点。此外,在dput(dat)命令中,“+”符号被更改为”。(1)添加
scale\u shape\u discrete(name=“”)+scale\u color\u discrete(name=“”)+scale\u linetype\u discrete(name=“”)
(或在任何
scale\u color\u手册()
(等)规范中使用
name=“”
)可能有一种不太笨重的方法来完成)(2)使用
read.table()
read.csv()
将数据导入R时,指定
check.names=FALSE