使用geom_dl和geom_point将标签放置在ggplot中的明智而简单的方法

时间:2015-05-01 16:40:10

标签: r ggplot2 scatter-plot labels

我使用下面的代码生成一个简单的图表。

# 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中寻找类似的解决方案。

Labels

修改

发表评论后,问题似乎与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()

标签仍然放错地方: Attempt with new hjust settings 在同一行中,运行没有hjust设置的代码不会以更合理的方式放置标签: No hjust scatter

0 个答案:

没有答案