創建一個包含所需標籤文本的向量,其中包含任何特殊的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)
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)
是否有可能使這一個標籤是「瓦*米^ -2「,也許旋轉90度,並在顏色漸變條的左側? – colin
查看更新的代碼。 – eipi10