我正在尝试绘制一组点,以显示图中的标签。由于标签包含长名,因此我想枚举标签并在图例中报告相应的名称,例如:
我的框架包括4列: X,Y,名称,数字
到目前为止,我的代码如下:
ggplot(data.f,aes(X,Y)) +
geom_point() +
geom_smooth(method="lm") +
geom_text(aes(label=Numbers),hjust=-0.4, vjust=0, size=6) +
ylab("Y") +
xlab("X")
生成附件图
您知道如何使用“名称”列自动在图例中显示对应的名称吗?
答案 0 :(得分:0)
这不完全是您想要的,但它可能会给您一些直觉。
通过名称对分组,着色或构面没有帮助,因为线条平滑。可以使用theme(plot.margin = unit(c(., ., ., .)))
调整边距,以打开手动图例的空间,然后使用paste0(data.f$Numbers, ". ", data.f$Name)
将区域名称和数字粘贴到此处。但是,您将需要较大的空间来容纳约60个区域名称,这会影响图形的可读性。
我的替代建议是将鼠标悬停时显示区域名称,以保持环境整洁。这是ggiraph
的实现:
# importing packages
library(dplyr)
library(ggiraph)
# creating a similar data frame
set.seed(147)
data.f <- data_frame(
X = rnorm(10),
Y = rnorm(10),
Name = paste("Region", LETTERS[1:10]),
Numbers = 1:10
)
# building the ggplot with interactive features
g <- ggplot(data = data.f, aes(x = X, y = Y)) +
geom_smooth(method = "lm") +
geom_text(
aes(label = Numbers),
hjust = -0.4,
vjust = 0,
size = 6
) +
geom_point_interactive(aes(tooltip = Name, data_id = Numbers)) +
labs(x = "X", y = "Y")
# building the ggiraph output
ggiraph(ggobj = g)
如果您想了解有关ggiraph
的更多信息并进一步自定义图形,可以在文档中找到更多详细信息:Using ggiraph