如何在R中的同一绘图中绘制矩阵的几列?

如何在R中的同一绘图中绘制矩阵的几列?,r,ggplot2,R,Ggplot2,我有一个名为XY的矩阵,其中包含以下条目: 0 1 1 3 2 4 2 3 4 2 3 5 6 2 5 6 我想(在同一个图中)分别将第1列和第2列绘制为x轴和y轴,第3列和第4列分别绘制为x轴和y轴。我正在尝试以下代码: plot(XY[,1],XY[,2],type="l",col="red") lines(XY[,3],XY[,4],col="green") points(XY[,1],XY[,2],type="p",col="red") points(X

我有一个名为XY的矩阵,其中包含以下条目:

0   1  1  3
2   4  2  3
4   2  3  5
6   2  5  6
我想(在同一个图中)分别将第1列和第2列绘制为x轴和y轴,第3列和第4列分别绘制为x轴和y轴。我正在尝试以下代码:

plot(XY[,1],XY[,2],type="l",col="red")
lines(XY[,3],XY[,4],col="green")
points(XY[,1],XY[,2],type="p",col="red")
points(XY[,3],XY[,4],type="p",col="green")
有没有一种更通用的方法可以在不重复相同代码的情况下绘制此图


谢谢

如果您不介意使用
ggplot
而不是
base
plot(考虑到我认为您不需要的标记),您可以:

库(ggplot2)

XY尝试base R graphics
matplot
以避免重复base R和ggplot示例以各自不同的方式所做的代码


matplot(XY[,c(1, 3)], XY[,c(2, 4)], type = "l", lty = 1, col = c("red", "green"), pch = 1,
        xlab = "X label", ylab = "Y label")
matpoints(XY[,c(1, 3)], XY[,c(2, 4)], type = "p", pch = 1, col = c("red", "green"))

这将为您提供:


谢谢,它非常有用。您是否建议如何为带有标签的“国家”和“绿色”设置为标签“Time”的“红色”设置添加图例?在您的情况下,添加
+scale\u colour\u manual(name='colour',value=c('green'=“green”,“red”=“red”)、labels=c('c2','c1'))
对于上述代码,trickI可能会编辑答案,为您提出另一种方法。在
ggplot
中处理长格式数据更容易,因此,如果您想自定义绘图,新的代码片段更适合您。出于某种原因,您建议的更新只显示点,而不显示线,但我没有从R收到任何警告消息。不过,另一件事,数据应该等于“df”而不是“XY”在阴谋内部?