创建一个包含所需标签文本的向量,其中包含任何特殊的plotmath表达式,然后使用parse
将其评估为一个表达式,该表达式将在绘图中正确呈现。然后,在绘图代码中,使用参数breaks
设置所需的中断,并在labels
参数中使用相应的标签。
labs = parse(text=paste0(1:5, "~watts%.%meter^-2"))
qplot(mpg, wt, data = mtcars, colour = miss) +
scale_colour_gradient(na.value = "black", breaks=1:5, labels=labs)
![enter image description here](https://i.stack.imgur.com/B4OHe.png)
UPDATE:你可以把单位的图例旁边,但你可能需要手动调整它得到安置的权利(尽管有人谁明白的了GROB结构ggplot比我更好的可能会自动化它)。另外,即使我关闭了剪裁,如果图例太接近图例,图例grob仍然会覆盖单位注释。我不知道如何解决这个问题。
p1 = qplot(mpg, wt, data = mtcars, colour = miss) +
scale_colour_gradient(na.value = "black") +
annotate(x=max(mtcars$mpg) + 0.25*diff(range(mtcars$mpg)),
y=mean(range(mtcars$wt)) - 0.1,
label=lbl, geom="text", parse=TRUE, angle=-90, size=3.3) +
coord_cartesian(xlim=range(mtcars$mpg)) +
theme(plot.margin=unit(c(0.5,2,0.5,0.5), "lines"))
# Turn off clipping
gt <- ggplot_gtable(ggplot_build(p1))
gt$layout$clip <- "off"
grid.draw(gt)
![enter image description here](https://i.stack.imgur.com/psARo.png)
是否有可能使这一个标签是“瓦*米^ -2“,也许旋转90度,并在颜色渐变条的左侧? – colin
查看更新的代码。 – eipi10