- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 df
包含 var
和 link
类型的元素。我想使用 geom_text
将元素 var
绘制为文本标签,使用 geom_curve
将 links
绘制为箭头。问题是,链接
过度绘制了标签,而我希望它们在标签旁边开始和停止。
我有什么:
type x y label from_x from_y to_x to_y
1 link NA NA <NA> 608 -229 460 -276
2 link NA NA <NA> 428 -274 570 -226
3 var 610 -226 accomplishments per week 608 -229 460 NA
4 var 426 -276 hours worked per week 428 -274 570 NA
当我绘制它时,它看起来如下:
ggplot(df) + geom_text(aes(x, y, label = label)) + geom_curve(aes(x =
from_x,y = from_y,xend = to_x, yend = to_y), curvature = -.3, arrow = arrow(length = unit(0.03, "npc")), color = "red")
我期望的是:
我怎样才能做到这一点?
这是我的df
:
df <- structure(list(type = structure(c(1L, 1L, 2L, 2L), .Label = c("link",
"var"), class = "factor"), x = c(NA, NA, 610, 426), y = c(NA,
NA, -226, -276), label = c(NA, NA, "accomplishments per week",
"hours worked per week"), from_x = c(610, 426, NA, NA), from_y = c(-226,
-276, NA, NA), to_x = c(426, 610, NA, NA), to_y = c(-276, -226,
NA, NA)), .Names = c("type", "x", "y", "label", "from_x", "from_y",
"to_x", "to_y"), row.names = c(NA, -4L), class = "data.frame")
这是我为绘制预期输出所做的手动调整:
df$from_x <- c(608, 428)
df$from_y <- c(-229, -274)
df$to_x <- c(460, 570)
ggplot(df) + geom_text(aes(x, y, label = label)) + geom_curve(aes(x = from_x,y = from_y,xend = to_x, yend = to_y), curvature = -.3, arrow = arrow(length = unit(0.03, "npc")), color = "red")
最佳答案
to_x
和 from_y
计算适当的偏移量。geom_text
在堆栈中最后呈现(即顶部)df <-
df %>%
mutate(
to_xoffset = if_else(to_y > -250, to_x - 25, NA_real_),
to_xoffset = if_else(to_y < -250, to_x + 25, to_xoffset),
from_yoffset = if_else(from_x < 525, from_y + 2, NA_real_),
from_yoffset = if_else(from_x > 525, from_y - 2, from_yoffset)
)
ggplot(df) +
geom_curve(aes(x = from_x,y = from_yoffset ,xend = to_xoffset, yend = to_y), curvature = -.3, arrow = arrow(length = unit(0.03, "npc")), color = "red") +
geom_text(aes(x, y, label = label))
关于r - 我如何切割 `geom_curve` 绘制的曲线,以免它们与 `geom_text` 中 `ggplot2` 绘制的标签重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55632173/
我正在尝试制作类似于 arcdiagram 的弧线图包,使用ggplot2的geom_curve: library(ggplot2) ggplot(myDat, aes(x = A, xend = B
有没有办法让geom_curve上的箭头关闭?相同的代码适用于 geom_segment。也许它是一个错误? library(tidyverse) set.seed(123) data <- data
有什么方法可以在 geom_curve 线的中心或附近添加标签吗?目前,我只能通过标记曲线的起点或终点来做到这一点。 library(tidyverse) library(ggrepel) df 0
我好像不能把箭头做成凹面的。我已尝试对 geom_curve 中的 angle 参数进行多次调整 可重现的例子 library(ggplot2) library(dplyr) set.seed(123
我有以下代码: library(tidyverse) data_frame(x = 1:5, x1=x+1, c = c('a','a','a','b','b')) %>% ggplot(
我有一个带有曲线信息的 df: df 曲线更好? 甚至更好:我在哪里可以找到 gg 对象中的曲线信息以及如何使用该信息来重新缩放我的曲线? 注意:我不需要 100% 适合。但视觉上的贴合度应该有所改
我有一个 df有两个曲线定义,每个定义由两个点和一个曲率值组成。目标是使用 ggplot2 绘制两条单独的曲线。 geom_curve (或替代方案)。 我可以使用以下方法生成我的预期输出: df
我有一个 df 包含 var 和 link 类型的元素。我想使用 geom_text 将元素 var 绘制为文本标签,使用 geom_curve 将 links 绘制为箭头。问题是,链接 过度绘制了标
我是一名优秀的程序员,十分优秀!