如何使用箭头指示的偏移 geom_text() 标签绘制 geom_tile()?
Posted
技术标签:
【中文标题】如何使用箭头指示的偏移 geom_text() 标签绘制 geom_tile()?【英文标题】:How to plot geom_tile() with offset geom_text() labels indicated using arrows? 【发布时间】:2021-10-07 02:24:30 【问题描述】:我可以通过geom_text()
绘制带有标签的geom_tile()
s,如下所示:
library(ggplot2)
df <- structure(list(x = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 1L, 2L,
3L, 4L, 5L, 6L, 7L, 8L),
y = c("A", "A", "A", "A", "A", "A", "A", "A", "B", "B", "B", "B", "B", "B", "B", "B"),
z = c("stuff", "not_stuff", "not_stuff", "not_stuff", "not_stuff", "stuff",
"stuff", "not_stuff", "stuff", "stuff", "not_stuff", "stuff",
"stuff", "not_stuff", "stuff", "not_stuff")),
class = "data.frame",
row.names = c(NA,
-16L))
plt <- ggplot2::ggplot(data = df, mapping = ggplot2::aes(x = x, y = y, fill = z)) +
ggplot2::geom_tile(height = ifelse(z == "stuff", 0.4, 0.1)) +
ggplot2::geom_text(ggplot2::aes(label = ifelse(z == "stuff", z, "")))
plt
但我想用像这样的箭头(弯曲或其他)使标签从瓷砖本身偏移:
(对糟糕的绘图表示歉意。)我希望每个图块的标签都用箭头显示,就像我在上图中描绘的一个示例一样。
我不知道该怎么做,而且我真的无法在其他地方找到答案。
任何帮助和/或指点将不胜感激
【问题讨论】:
【参考方案1】:ggrepel
包中的geom_label_repel
非常适合:
library(ggplot2)
library(ggrepel)
ggplot(df, aes(x = x, y = y, fill = z)) +
geom_tile(height = ifelse(z == "stuff", 0.4, 0.1)) +
geom_label_repel(
aes(label = ifelse(z == "stuff", z, "")),
fill = NA,
nudge_y = 0.5
)
【讨论】:
以上是关于如何使用箭头指示的偏移 geom_text() 标签绘制 geom_tile()?的主要内容,如果未能解决你的问题,请参考以下文章
Unity实战篇 |制作一个跟随鼠标转向的 简易箭头指示标,包括 UI指向 和 3D指向标
Unity实战篇 |制作一个跟随鼠标转向的 简易箭头指示标,包括 UI指向 和 3D指向标
R语言ggplot2可视化:使用scale_shape_identity函数显示pch点形状使用geom_text函数为pch形状添加标(plot characters)
Google Maps Android 如何显示指示边界外附近标记的箭头?