[R] plot question

Tiandao Li Tiandao.Li at usm.edu
Tue Oct 2 21:41:15 CEST 2007


Hello Eric,

I got it right this time. You are right, regression line is way too messy. 
For each gene, plot the lines connecting the points of the average 
intensity at different concentrations, and write gene ID at the end of 
line. I am new to the R graphics, any help is appreciated.


On Tue, 2 Oct 2007, Eric Thompson wrote:

But you did not use the command I suggested: you replaced x with
colnames(n), which is a vector of characters. Characters such as "25p"
has little meaning for plotting:

> as.numeric("25p")
[1] NA

So you've tried to plot a bunch of NA's, which is why it doesn't know
what limits to use for xlim.

That is why I gave you the commands to convert that character array
colnames(n) to a meaningful numeric array. It is unreasonable to
expect R to guess that "25p" = 25.

x <- colnames(n)
x <- as.numeric(substr(x, 1, nchar(x) - 1))
matplot(x, t(n), pch = 1, axes = FALSE)
axis(side = 2)
axis(side = 3, at = x, lab = colnames(n))
box()



On 10/2/07, Tiandao Li <Tiandao.Li at usm.edu> wrote:
> However, I got the following msg.
>
> > matplot(colnames(n), t(n), pch = 1, axes = FALSE)
> Error in plot.window(xlim, ylim, log, asp, ...) :
>         need finite 'xlim' values
> In addition: Warning messages:
> 1: NAs introduced by coercion in: as.double.default(x)
> 2: no non-missing arguments to min; returning Inf in: min(x)
> 3: no non-missing arguments to max; returning -Inf in: max(x)
> 4: NAs introduced by coercion in: as.double.default(x)
>
>
>
> On Tue, 2 Oct 2007, Eric Thompson wrote:
>
> Okay. If you want to customize the axis labels, you can suppress the
> defaults by changing the matplot call to
>
> matplot(x, t(n), pch = 1, axes = FALSE)
>
> And then adding them how you want:
>
> axis(side = 2)
> axis(side = 3, at = x, lab = colnames(n))
> box()
>
>
>
> On 10/2/07, Tiandao Li <Tiandao.Li at usm.edu> wrote:
> > Thanks for your quick reply, Eric.
> >
> > I want plot colnames(n) as string on x-axis. If the regression lines don't
> > fit the data very well, it is OK, the plot is only for quality check.
> >
> >
> > On Tue, 2 Oct 2007, Eric Thompson wrote:
> >
> > If I've correctly interpreted what you want, you first need to get the x values:
> >
> > x <- colnames(n)
> > x <- as.numeric(substr(x, 1, nchar(x) - 1))
> >
> > Then it seems fairly easy to use matplot to get the values with
> > different colors for each concentration
> >
> > dim(x) <- c(length(x), 1)
> > matplot(x, t(n), pch = 1)
> >
> > But this does not look like a simple line will fit the data for each
> > gene well, so perhaps I've misunderstood something. You will have to
> > decide how you want to do the regression. It will also get very messy
> > and difficult to read with 20 lines (a different regression for each
> > gene). To do the regressions, plot the lines, and label with the gene
> > ID, see
> >
> > ?lm
> > ?predict
> > ?abline
> > ?text
> >
> >
> >
> >
> > On 10/2/07, Tiandao Li <Tiandao.Li at usm.edu> wrote:
> > > Hello,
> > >
> > > I have a question about how to plot a series of data. The folloqing is my
> > > data matrix of n
> > > > n
> > >              25p    5p  2.5p 0.5p
> > > 16B-E06.g 45379  4383  5123   45
> > > 16B-E06.g 45138  4028  6249   52
> > > 16B-E06.g 48457  4267  5470   54
> > > 16B-E06.g 47740  4676  6769   48
> > > 37B-B02.g 42860  6152 19276   72
> > > 35B-A02.g 48325 12863 38274  143
> > > 35B-A02.g 48410 12806 39013  175
> > > 35B-A02.g 48417  9057 40923  176
> > > 35B-A02.g 51403 13865 43338  161
> > > 45B-C12.g 50939  3656  5783   43
> > > 45B-C12.g 52356  5524  6041   55
> > > 45B-C12.g 49338  5141  5266   41
> > > 45B-C12.g 51567  3915  5677   43
> > > 35A-G04.g 40365  5513  6971   32
> > > 35B-D01.g 54217 12607 13067   93
> > > 35B-D01.g 55283 11441 14964  101
> > > 35B-D01.g 55041  9626 14928   94
> > > 35B-D01.g 54058  9465 14912   88
> > > 35B-A04.g 42745 12080 34271  105
> > > 35B-A04.g 41055 12423 34874  126
> > >
> > > colnames(n) is concentrations, rownames(n) is gene IDs, and the rest is
> > > Intensity. I want to plot the data this way.
> > > x-axis is colnames(n) in the order of 0.5p, 2.5p,5p,and 25p.
> > > y-axis is Intensity
> > > Inside of plot is the points of intensity over 4 concentrations, points
> > > from different genes have different color or shape. A regression line of
> > > each genes crosss different concetrations, and at the end of line is gene
> > > IDs.
> > >
> > > Thanks,
> > >
> > > Tiandao
> > >
> > > ______________________________________________
> > > R-help at r-project.org mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-help
> > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> > > and provide commented, minimal, self-contained, reproducible code.
> > >
> >
> > ______________________________________________
> > R-help at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> >
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list