[R] Image from bytes streams
Henrik Bengtsson
hb at maths.lth.se
Tue Aug 16 10:00:14 CEST 2005
The R graphics is not sent to the standard output of the R process,
which you assume when you try to "capture" it via your Java 'input'
stream. Simple illustration:
C:\>echo plot(1) | R --quiet --no-save
> plot(1)
>
C:\>
So where did the graphics go then? If you "batch" run R commands like
this, all graphical output is written to (one) default postscript file
"Rplots.ps"; that's the file you want to read. I bet you have a two
page Rplots.ps file for your pie and scatter plot. If you do not want
postscript, but other formats, you have to generate you image files
explicitly, e.g.
png("image.png", width=640, height=480)
plot(1)
dev.off()
Make sure you understand how R works before you try to call it from
Java; there is nothing magic going on if you understand it.
Cheers
Henrik Bengtsson
Márcio de Medeiros Ribeiro wrote:
> Hello!
>
> I'm trying to get an array of bytes from graphic images generated by
> R. Here, you can see my Java code:
>
> --------------------------------------------------------------------------------------------------------------------------
> Process p = Runtime.getRuntime().exec("C:/Arquivos de
> programas/R/rw1090/bin/Rterm.exe --no-save");
>
> DataOutputStream output = new DataOutputStream(new
> BufferedOutputStream(p.getOutputStream()));
>
> DataInputStream input = new DataInputStream(new
> BufferedInputStream(p.getInputStream()));
>
> // output.writeBytes("pie(c(50,30,20))"); //Pie graphic
> output.writeBytes("plot(1,1)"); // Plot graphic
> output.flush();
>
> input.readFully(new byte[200]); // Here I read the "image" bytes.
> --------------------------------------------------------------------------------------------------------------------------
>
> That's the problem: when I use Pie graphic, I got some bytes. However,
> when I use the Plot graphic, I got the same bytes! So, I suppose that
> my program does not read the bytes from the generated graphic from R.
>
> Is it possible to get the bytes from the generated graphic? How can I
> get these bytes?
>
> Sorry about my english. I'm brazilian! :)
More information about the R-help
mailing list