Hello R-friends,
i have a question to the "text"-function.
a little test-dataset for better understanding:
-the dataset was imported with read.table(....,header=TRUE)
s1-s10 are the samplenames
var1 var2 var3
s1 1 1 2
s2 2 3 1
s3 2 2 3
s4 5 4 3
s5 4 2 3
s6 6 3 2
s7 8 5 4
s8 7 2 1
s9 9 3 2
s10 8 6 4
-then i??ve performed a pincipal component analysis with prcomp
-for displaying the result in a x,y-graph i transformed out.pca$x into the
dataframe points
points <- out.pca$x
> points
PC1 PC2 PC3
s1 -4.7055777 -0.14781544 -0.3683602
s2 -3.1854599 0.19661476 1.5212455
s3 -3.2687980 0.78193513 -0.6352458
s4 0.2278948 1.00061498 0.2164108
s5 -1.4382847 0.02500633 -0.9114340
s6 0.6216283 -0.68606440 0.2071083
s7 3.4951878 1.17343675 -0.3266629
s8 1.0153619 -2.37274378 0.1978058
s9 3.3673983 -1.82145761 -0.2071739
s10 3.8706492 1.85047328 0.3063065
- with plot(points$PC1, points$PC2, type="n") i start a graph without
displaying anything at the x,y-coordinates
- i want now to display the samplenames at the right x,y-coordinate; i
generated a dataframe called lab with the samplenames
> lab
V1
1 s1
2 s2
3 s3
4 s4
5 s5
6 s6
7 s7
8 s8
9 s9
10 s10
- i??ve studied the "text"-helppage and so i tried the following:
text(pca$PC1, pca$PC2, labels=lab)
- in the plot there is now c(1,3,4,5,6,7,8,9,10,2) displayed instead of s1-s10
is out there any idea what i'am doing wrong? is there maybe another way of
displaying the samplenames at the right x,y-coordinate?
greetings from the sunny tirol with thanks in advance
helli
platform i386-pc-mingw32
arch i386
os mingw32 - win xp
system i386, mingw32
status
major 2
minor 1.0
year 2005
month 04
day 18
language R
"text"-function: adding text in an x,y-plot
3 messages · Helmut Kudrnovsky, Uwe Ligges, John Fox
Helmut Kudrnovsky wrote:
Hello R-friends,
i have a question to the "text"-function.
a little test-dataset for better understanding:
-the dataset was imported with read.table(....,header=TRUE)
s1-s10 are the samplenames
var1 var2 var3
s1 1 1 2
s2 2 3 1
s3 2 2 3
s4 5 4 3
s5 4 2 3
s6 6 3 2
s7 8 5 4
s8 7 2 1
s9 9 3 2
s10 8 6 4
-then i??ve performed a pincipal component analysis with prcomp
-for displaying the result in a x,y-graph i transformed out.pca$x into
the dataframe points
points <- out.pca$x
> points
PC1 PC2 PC3 s1 -4.7055777 -0.14781544 -0.3683602 s2 -3.1854599 0.19661476 1.5212455 s3 -3.2687980 0.78193513 -0.6352458 s4 0.2278948 1.00061498 0.2164108 s5 -1.4382847 0.02500633 -0.9114340 s6 0.6216283 -0.68606440 0.2071083 s7 3.4951878 1.17343675 -0.3266629 s8 1.0153619 -2.37274378 0.1978058 s9 3.3673983 -1.82145761 -0.2071739 s10 3.8706492 1.85047328 0.3063065 - with plot(points$PC1, points$PC2, type="n") i start a graph without displaying anything at the x,y-coordinates
I think points should be a matrix rather than a list or data.frame, hence the code above won't work. Instead: plot(points[,"PC1"], points[,"PC2"], type="n")
- i want now to display the samplenames at the right x,y-coordinate; i generated a dataframe called lab with the samplenames
> lab
V1 1 s1 2 s2 3 s3 4 s4 5 s5 6 s6 7 s7 8 s8 9 s9 10 s10 - i??ve studied the "text"-helppage and so i tried the following: text(pca$PC1, pca$PC2, labels=lab)
Hmm, what is pca ??? lab <- rownames(points) text(points[,"PC1"], points[,"PC2"], labels=lab) works for me.
- in the plot there is now c(1,3,4,5,6,7,8,9,10,2) displayed instead of s1-s10
Quite probably you lab was a *factor* ...
is out there any idea what i'am doing wrong? is there maybe another way of displaying the samplenames at the right x,y-coordinate?
We cannot say what you did wrong when constructing your plot, but we know that your descibtion above is wrong, because it does not even work to generate the empty plot the way ... Please read the posting guide and rethink at least one time whether the code you are giving us is reproducible. Your code was not. Uwe Ligges
greetings from the sunny tirol with thanks in advance helli platform i386-pc-mingw32 arch i386 os mingw32 - win xp system i386, mingw32 status major 2 minor 1.0 year 2005 month 04 day 18 language R
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Dear Helmut, The problem is that you're implicitly coercing the entire data frame lab to character, producing
as.character(lab)
[1] "c(1, 3, 4, 5, 6, 7, 8, 9, 10, 2)" The numbers themselves come from the numeric coding of the factor V1 in this data frame; as.numeric(lab$V1) shows you what's going on. Instead you could specify labels=lab$V1 in the text() command. But why put the row names in a data frame in the first place; why not simply use labels=rownames(out.pca)? I hope this helps, John -------------------------------- John Fox Department of Sociology McMaster University Hamilton, Ontario Canada L8S 4M4 905-525-9140x23604 http://socserv.mcmaster.ca/jfox --------------------------------
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Helmut
Kudrnovsky
Sent: Sunday, May 29, 2005 11:08 AM
To: r-help at stat.math.ethz.ch
Subject: [R] "text"-function: adding text in an x,y-plot
Hello R-friends,
i have a question to the "text"-function.
a little test-dataset for better understanding:
-the dataset was imported with read.table(....,header=TRUE)
s1-s10 are the samplenames
var1 var2 var3
s1 1 1 2
s2 2 3 1
s3 2 2 3
s4 5 4 3
s5 4 2 3
s6 6 3 2
s7 8 5 4
s8 7 2 1
s9 9 3 2
s10 8 6 4
-then i??ve performed a pincipal component analysis with prcomp
-for displaying the result in a x,y-graph i transformed
out.pca$x into the dataframe points
points <- out.pca$x
> points
PC1 PC2 PC3 s1 -4.7055777 -0.14781544 -0.3683602 s2 -3.1854599 0.19661476 1.5212455 s3 -3.2687980 0.78193513 -0.6352458 s4 0.2278948 1.00061498 0.2164108 s5 -1.4382847 0.02500633 -0.9114340 s6 0.6216283 -0.68606440 0.2071083 s7 3.4951878 1.17343675 -0.3266629 s8 1.0153619 -2.37274378 0.1978058 s9 3.3673983 -1.82145761 -0.2071739 s10 3.8706492 1.85047328 0.3063065 - with plot(points$PC1, points$PC2, type="n") i start a graph without displaying anything at the x,y-coordinates - i want now to display the samplenames at the right x,y-coordinate; i generated a dataframe called lab with the samplenames
> lab
V1 1 s1 2 s2 3 s3 4 s4 5 s5 6 s6 7 s7 8 s8 9 s9 10 s10 - i??ve studied the "text"-helppage and so i tried the following: text(pca$PC1, pca$PC2, labels=lab) - in the plot there is now c(1,3,4,5,6,7,8,9,10,2) displayed instead of s1-s10 is out there any idea what i'am doing wrong? is there maybe another way of displaying the samplenames at the right x,y-coordinate? greetings from the sunny tirol with thanks in advance helli platform i386-pc-mingw32 arch i386 os mingw32 - win xp system i386, mingw32 status major 2 minor 1.0 year 2005 month 04 day 18 language R
______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html