Reputation: 52850
Goal
Code
require(lattice) png('my_typing.png') par(mfrow=c(2,1)) read.csv('race_data.csv')->sol plot(sol$Race.., sol$WPM*sol$Accuracy, type='l') # TODO: it wrongly substitutes the plot with levelplot # TODO: I want two plots one below another, plot and then levelplot below levelplot(cor(sol[1:5]))
Helper questions
How can I plot the normal plot and the special plot together in one PNG -file?
Should I combine different plotting -packages such as lattice and grid to base?
Upvotes: 1
Views: 2335
Reputation: 52850
MR. in #R recommened to use just one type of plot -things. Trellis -functions are not interchangeable with the base functions so one should also reprogram the syntax for things such as trend-line and titles. Otherwise, you create syntantic confusing over time and consistency to dogs.
I am trying to find out alternative ways of doing Grid-graphics so the writing in progress.
Different ways of creating Grid-graphics
1. Trellis -way of doing things, using lattice -pkg, code here
2. Combining different plot -pkgs
MR. discouraged this way but rcs's way of doing it here. According to MR, grid is
"much more user friendly way of creating grid grapics"
, so I think it is worth learning, and things such as lattice and ggplot2 are built on top of grid. Please, consult this paper about combining base -plotting-functions and the grid -plotting-functions here.
Upvotes: 0
Reputation: 68849
The gridBase package which provides some support for combining grid and base graphics output.
Here is a simple example:
library("grid")
library("gridBase")
library("lattice")
# example from levelplot help page
x <- seq(pi/4, 5 * pi, length.out = 100)
y <- seq(pi/4, 5 * pi, length.out = 100)
r <- as.vector(sqrt(outer(x^2, y^2, "+")))
g <- expand.grid(x=x, y=y)
g$z <- cos(r^2) * exp(-r/(pi^3))
p <- levelplot(z~x*y, g, cuts = 50, scales=list(log="e"), xlab="",
ylab="", main="lattice levelplot",
colorkey=FALSE, region=TRUE)
grid.newpage()
pushViewport(viewport(layout=grid.layout(2, 1,
heights=unit(c(2, 1), "null"))))
vp <- pushViewport(viewport(layout.pos.row=1, layout.pos.col=1))
par(omi=gridOMI())
# base graphics
plot(1:10, main="base graphics plot")
popViewport()
# lattice plot
vp <- pushViewport(viewport(layout.pos.row=2, layout.pos.col=1))
print(p, vp=vp, newpage=FALSE)
popViewport()
popViewport()
Upvotes: 3