An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20130306/2ca2d627/attachment.pl>
Plotting time data for various countries in same graph
3 messages · Anindya Sankar Dey, Jim Lemon, Rui Barradas
On 03/06/2013 07:06 PM, Anindya Sankar Dey wrote:
Hi, I've the following kind of data Time Country Values 2010Q1 India 5 2010Q2 India 7 2010Q3 India 5 2010Q4 India 9 2010Q1 China 10 2010Q2 China 6 2010Q3 China 9 2010Q4 China 14 I needed to plot a graph with the x-axis being time,y-axis being he Values and 2 line graph , one for India and one for counry. I don't have great knowledge on graphics in R. I was trying to use, ggplot(data,aes(x=Time,y=Values,colour=Country)) But this does not help. Can anyone help me with this?
Hi Anindya,
This might be a start for you:
asd.df<-read.table(
text="Time Country Values
2010Q1 India 5
2010Q2 India 7
2010Q3 India 5
2010Q4 India 9
2010Q1 China 10
2010Q2 China 6
2010Q3 China 9
2010Q4 China 14
",header=TRUE)
# Time is read as a factor, so it can be used directly in plotting
as.numeric(asd.df$Time)
[1] 1 2 3 4 1 2 3 4
plot(as.numeric(asd.df$Time)[asd.df$Country == "India"],
asd.df$Values[asd.df$Country == "India"],
type="l",col=4,lwd=2,xaxt="n",xlab="Financial Quarter",
ylab="Value",ylim=c(0,14))
lines(as.numeric(asd.df$Time)[asd.df$Country == "China"],
asd.df$Values[asd.df$Country == "China"],
col=2,lwd=2)
axis(1,at=1:4,labels=paste("Q",1:4,sep=""))
legend(2,2,c("India","China"),lty=1,lwd=2,col=c(4,2))
Jim
Hello,
You've forgot to use a geom.
Also, to have Time be the x axis variable you need to do a conversion.
library(ggplot2)
dat <- read.table(text = "
Time Country Values
2010Q1 India 5
2010Q2 India 7
2010Q3 India 5
2010Q4 India 9
2010Q1 China 10
2010Q2 China 6
2010Q3 China 9
2010Q4 China 14
", header = TRUE)
dat$Time <- as.numeric(sub("Q", "\\.", dat$Time))
p <- ggplot(dat,aes(x=Time,y=Values,colour=Country))
p + geom_line()
Hope this helps,
Rui Barradas
Em 06-03-2013 08:06, Anindya Sankar Dey escreveu:
Hi, I've the following kind of data Time Country Values 2010Q1 India 5 2010Q2 India 7 2010Q3 India 5 2010Q4 India 9 2010Q1 China 10 2010Q2 China 6 2010Q3 China 9 2010Q4 China 14 I needed to plot a graph with the x-axis being time,y-axis being he Values and 2 line graph , one for India and one for counry. I don't have great knowledge on graphics in R. I was trying to use, ggplot(data,aes(x=Time,y=Values,colour=Country)) But this does not help. Can anyone help me with this?