A line graph of several variables in R

I have input in the format below.

xyz 0 2.2 4.5 5 3.8 6.8 10 4.6 9.3 15 7.6 10.5 

How can I plot xy scatter like excel (show below) in R?

enter image description here

+4
source share
2 answers

There are at least four ways to do this:

1) Use the "horizontal" or "wide" data.frame, called df here

 df <- data.frame(x = c(0, 5, 10, 15), y = c(2.2, 3.8, 4.6, 7.6), z = c(4.5, 6.8, 9.3, 10.5)) ggplot(df, aes(x)) + geom_line(aes(y = y, colour = "y")) + geom_line(aes(y = z, colour = "z")) 

2) Using the grill

 require(lattice) xyplot(x ~ y + z, data=df, type = c('l','l'), col = c("blue", "red"), auto.key=T) 

3) Turn your original df into a "long" data.frame. This is how you usually work with data in ggplot2

 require("reshape") require("ggplot2") mdf <- melt(df, id="x") # convert to long format ggplot(mdf, aes(x=x, y=value, colour=variable)) + geom_line() + theme_bw() 

enter image description here

4) Using matplot () I have not studied this parameter very much, but here is an example.

 matplot(df$x, df[,2:3], type = "b", pch=19 ,col = 1:2) 
+8
source

This could help if you could say that you are stuck here. This is really pretty trivial in R. Should you find documentation for ? Plot and ? lines . For a simple overview, Quick R is excellent. Here is the code:

 windows() plot(x, y, type="l", lwd=2, col="blue", ylim=c(0, 12), xaxs="i", yaxs="i") lines(x,z, lwd=2, col="red") legend("topleft", legend=c("y","z"), lwd=c(2,2), col=c("blue","red")) 

Note that if you are using a Mac, you need quartz() instead of windows() . Here's the plot:

enter image description here

+6
source

Source: https://habr.com/ru/post/1490624/


All Articles