[R] How to automate creation of plots (create series of plots)
R. Michael Weylandt
michael.weylandt at gmail.com
Thu Apr 12 22:05:07 CEST 2012
I'm not quite sure what you are asking -- when you say an XY plot I
presume you mean a scatter plot of X against Y, but how do the values
underneath the headers play in? Do you just want different symbols?
With a little bit of data wrangling, I think this actually seems quite
well suited to the ggplot2 paradigm, but here's one way to approach it
in base graphics:
for(i in 3:NCOL(dat)){
plot(dat$X, dat$Y, pch = dat[,i], main = paste("Parameter", names(dat)[i]))
}
Michael
On Thu, Apr 12, 2012 at 1:38 PM, Magdalena A. Tkacz
<magdalena.tkacz at gmail.com> wrote:
> Hi All.
>
> I have problem with generating series of plots. In detail:
>
> I have file of data which I insert into dataframe:
> data<-read.table("file.txt", header=TRUE, sep=" ")
>
> Data in this file are prepared in such a way, that the header of each
> column has a value of one of examined parameter - something like that:
> X Y 01.0 01.1 01.2 01.5 01.6 02.0
> 1 11.74 10.71 16 16 16 1 16 16
> 2 12.43 10.97 16 16 16 1 1 16
> 3 11.63 11.92 16 16 1 1 16 1
>
> I need to generate a XY plot for each column (I need to observe
> changes in context of parameter (header names) change).
> Each column has a few values and it is reflected in point's shape (pch).
> I'm doing this using (example for fourth column):
>
> plot(data$X~data$Y,main="Parameter, 01.1", pch=data$01.1)
>
> In this way I have different point shape and value of parameter in
> main plot label.
>
>
> For the first few columns it is:
> plot(data$X~data$Y,main="Parameter, 01.0", pch=data$Pr.01.0)
>
> plot(data$X~data$Y,main="Parameter, 1.1", pch=data$Pr.01.1)
>
> plot(data$X~data$Y,main="Parameter, 1.2", pch=data$Pr.01.2)
> I use it together with par(mfrow=c(3,2)), so I have 6 plots at a time.
>
> My question is:
> How can I automate creation od plots?
> The values in headers are not a series - they should be read from
> header, because I can not prepare them in one or two "for" loops. (1.2
> and next can be 1.5 next 2.0 next 2.7 -certain values are not
> predictable)
>
> The problem is that I have a lot of columns (now 57, sometimes - about
> 100, without initial filtering - more than 300).
> Now I manually rewrite parameter value and copy line "plot(...)". It
> is very laborious work, and I think it can be automated.
>
> Does anyone has an idea how can I use data frame headers as parameters
> in plot (legend and parameter of pch)?
> I'm sure that it will be "for" loop - I know how many plots I need,
> but what inside "for" (combining data frame header and plot
> parameter)?
>
> Regards
>
> --
> /|/| _ _ _/_ /_ _ / / _ __
> / |(/(/(/(/((-/)(/ ( /((/( /_
> _/
> Magdalena Tkacz
>
> ______________________________________________
> 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