I\'m hoping I can combine the spiffy importing and drawing powers of grImport
with the awesome graphing power of ggplot2
, but I simply don\'t under
Below is a hack to use a custom grob for axis labels.
library(grid)
library(ggplot2)
## convert the labels to some parameter to be used in the custom grob
## here simply an index that will be interpreted as color
mapping <- function(x, ...){
seq_along(x)
}
library(grImport)
hourglass <- new("Picture",
paths= list(new("PictureFill",
x=c(0, 1, 0, 1),
y=c(0, 0, 1, 1))),
summary= new("PictureSummary",
numPaths=1,
xscale=c(0, 1),
yscale=c(0, 1)))
## bare bones edit of theme_text()
my_axis <- function ()
{
structure(function(label, x = 0.5, y = 0.5, default.units = "npc", ...) {
cols <- mapping(label)
symbolsGrob(hourglass, x, 0*x + unit(0.5, "npc"),
use.gc=FALSE,size=unit(5,"mm"), gp=gpar(fill=cols))
}, class = "theme", type = "custom", call = match.call())
}
qplot(1:12, rnorm(12)) +
opts( axis.text.x = my_axis(), axis.ticks.margin = unit(0.5, "cm"))