Date: Tue, 09 Aug 2011 20:48:03 +1000
From: Jim Lemon <jim at bitwrit.com.au>
Subject: Re: [R] Fwd: Need help with xyplot
To: aziz4 at illinois.edu
Cc: r-help at r-project.org
On 08/09/2011 03:10 AM, aziz4 at illinois.edu wrote:
---- Original message ----
Date: Wed, 3 Aug 2011 16:06:33 -0500 (CDT)
From:<aziz4 at illinois.edu>
Subject: Need help with xyplot
To: r-help at r-project.org
Consider I have the following data:
AgeRange AgeOfPerson PersonNo FriendsAtYear0 FriendsAtYear1 FriendsAtYear2 FriendsAtYear3 FriendsAtYear4 FriendsAtYear5
10 - 12 11 1 0 1 2 2 3 3
10 - 12 12 2 0 1 2 2 3 3
15 - 18 13 3 1 2 3 4 6 7
15 - 18 14 4 1 3 4 5 7 7
30 - 40 33 5 3 5 5 6 8 9
30 - 40 36 6 4 4 4 4 4 4
I want to plot the number of friends against number of years, as to show how friendships grew over time. Also, I want to group the graphs by AgeRange of persons and also color them with respect to the Age of Persons. So far, I have this code:
FilePath = "C:\\Documents and Settings\\All Users\\Documents\\Desktop\\Fayez\\ResearchWork\\Pajek_Work\\Program\\2011-03-07-Wed-FriMeetingApr15\\RPractice\\"
NumberOfyears<- c(0, 1, 2, 3, 4 ,5);
File2Open = paste(FilePath, "FriendshipNetExample.txt", sep = "")
# print(File2Open)
DataTable = read.table(File2Open, header = TRUE, sep = "\t")
# print(DataTable)
print(xyplot(FriendsAtYear0 + FriendsAtYear1 + FriendsAtYear2 + FriendsAtYear3 + FriendsAtYear4 + FriendsAtYear5
~ AgeOfPerson | AgeRange, data = DataTable, xlab = "Number of Years (0 to 5)", ylab = "Number of Friends", main = "Number of Friends vs. Years",
#aspect = "xy", # calculate an optimal aspect ratio
panel = function(x,y) {
panel.grid();
if (10<= x&& x< 12) panel.xyplot(x,y,col="red");
if (15<= x&& x< 18) panel.xyplot(x,y,col="salmon");
if (30<= x&& x< 40) panel.xyplot(x,y,col="maroon");
} ) )
But it obviously does not serve the purpose. Urgent help would be most appreciated.
Hi Fayez,
I would suggest a "spaghetti plot" where multiple lines track the number
of friends over time. This may give you some ideas:
library(plotrix)
friends<-read.table("friends.tab",sep="\t",header=TRUE)
matplot(friends[,4:9],col=color.scale(friends[,2],extremes=c(3,2)),
type="b",main="Friends by time",xlab="Year",ylab="Number of friends")
Jim