我使用下面的代码生成一个简单的图表。
# Data import -------------------------------------------------------------
data(mtcars)
mtcars$model <- rownames(mtcars)
# Graph: Income Broadband -------------------------------------------------
# Lib.
require(ggplot2); require(directlabels)
# Graph definition
ggplot(data = mtcars, aes(x = mpg, y = disp)) +
geom_point(shape = 1, colour = "black", size = 3, fill = "black") +
geom_smooth(method = lm, se = TRUE, fullrange = TRUE) +
geom_dl(aes(label = model), list("smart.grid", cex = 0.5, hjust = -.5)) +
xlab("MPG") +
ylab("DISP") +
theme_bw()
如下图所示,图表上的标签放置在远离点的位置。我想修改它并将点标签放在图表上的点附近。当然,为了便于阅读,我希望标签不重叠。此外,我希望解决方案易于重现,因为我将不得不应用于许多图表。正如所讨论的here,Stata中的mlabvpos
提供了一些功能。我在R中寻找类似的解决方案。
发表评论后,问题似乎与hjust
设置无关。例如,代码:
# Graph definition
ggplot(data = mtcars, aes(x = mpg, y = disp)) +
geom_point(shape = 1, colour = "black", size = 3, fill = "black") +
geom_smooth(method = lm, se = TRUE, fullrange = TRUE) +
geom_dl(aes(label = model), list("smart.grid", cex = 0.5, hjust = -.001)) +
xlab("MPG") +
ylab("DISP") +
theme_bw()
标签仍然放错地方:
在同一行中,运行没有hjust
设置的代码不会以更合理的方式放置标签: