我在绘图中使用带有 directlabels 包的 ggplot2 geom_line()
,我希望其中一个标签读取“XM”。但是,在我的data.frame()
“XM”中,列名被重命名为“XM”,我找不到有关如何为direct.label
函数提供自定义标签名称的文档,也找不到帮助阅读源代码。(directabels 似乎不尊重在 ggplot 比例中设置的标签名称,这是我尝试的第一件事。)
示例代码:
library("scales")
library("reshape2")
library("ggplot2")
library("directlabels")
data = data.frame(
C = c(1.2, 1.4, 0.3, -2.0, 0.5),
I = c(1.2, 1.5, -1.3, -3.8, 1.8),
G = c(0.2, 0.3, 0.3, 0.2, 0.2),
"X-M" = c(2.9, -0.7, 0.3, -2.8, 1.5) +
c(-2.7, 0.2, 0.4, 3.6, -2.4),
year = c("2006", "2007", "2008", "2009", "2010"))
p <- ggplot(data = melt(data), aes(year, value, color = variable)) +
geom_line(aes(group = variable)) +
scale_color_hue(breaks = c("C", "I", "G", "X.M"),
labels = c("C", "I", "G", "X-M")) # directlabels doesn't
# use this
# Compare:
p
# with:
direct.label(p, list(last.points, hjust = -0.25))
生成的图表可以在这里看到。带有直接标签的那个使用“XM”而不是“XM”。提前谢谢了!