我正在使用 geom_text_repel,有点基于此示例: https: //ggrepel.slowkow.com/articles/examples.html#align-labels-on-the-top-or-bottom-edge。但是,在我的代码中,线段的末端有时会捕捉到标签的左侧,有时会捕捉到标签的底部。这破坏了我正在寻找的干净的外观。我意识到这种行为取决于比例和分辨率(如果您更改查看器的大小或以不同的分辨率保存,则不会发生这种行为),但我现在无法更改这些。有没有办法强制ggrepel捕捉(锚定)到标签的左侧
这段代码复制了这个问题(我的实际代码当然不是这样混乱的)。从 FB 到 FI,段锚定在底部,DK 锚定到左侧,然后 IP 锚定到底部,然后从那里锚定到左侧(所需)。
library(ggplot2)
library(ggrepel)
library(dplyr)
set.seed(2)
dat <- tibble(A = c(seq(1,1.5, .015), 6),
B = 1,
C = replicate(35, paste0(sample(LETTERS, 2), collapse = '')))
p1 <- dat %>%
ggplot(aes(x = B,
y = A,
label = C))+
geom_point() +
geom_text_repel( direction = "y",
xlim = c(1.1, 5),
min.segment.length = 0)+
coord_cartesian(expand = T, clip = "off")+
xlim(1,1.2)
ggsave("p1.png", p1, width = 7, height = 5)
Run Code Online (Sandbox Code Playgroud)
我正在使用创建一个圆环图echarts4r。现在我正在尝试添加自定义工具提示,并且我能够复制此处给出的示例Echarts4r :使用工具提示中总计的百分比创建堆叠面积图和此处在工具提示 echarts4r 中显示额外变量。但是,我不太明白这是如何扩展到饼图的。我想要一个带有工具提示的饼图,显示总数和相对百分比
library(tidyverse)
library(echarts4r)
My_df <- data.frame(n = c(1, 4, 10),
x = c("A", "B", " C")) %>%
mutate(percent = round(n/sum(n), 2) )
My_df %>%
e_charts(x) %>%
e_pie(n, radius = c("50%", "70%")) %>%
e_tooltip()
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止最好的镜头
My_df %>%
e_charts(x) %>%
e_pie(n, radius = c("50%", "70%")) %>%
e_tooltip(formatter = htmlwidgets::JS("
function(params){
return('<strong>' + params.name +
'</strong><br />total: ' + params.value +
'<br />percent: ' + params.value[1]) } "))
Run Code Online (Sandbox Code Playgroud)
在散点图示例中,附加值使用附加值bind =,但这不适用于饼图。
我正在尝试将一些相关的悬停信息添加到 echarts4r 图的工具提示中。我想制作一个箱线图,向用户显示异常值的名称(或一些其他信息)。这与向工具提示饼图 echarts4r 添加额外变量和向工具提示饼图 echarts4r 添加额外变量有些相关,但这些解决方案不起作用,因为bind不适用于e_boxplot。
这就是我到目前为止所拥有的
library(echarts4r)
df <- data.frame(
my_name = letters[1:11],
x = c(1:10, 25),
y = c(1:10, -6)
)
df |>
e_charts() |>
e_boxplot(y, outliers = TRUE) |>
e_boxplot(x, outliers = TRUE) |>
e_tooltip(
formatter = htmlwidgets::JS("
function(params)
{
return `<strong>${params.name}</strong>
<br/>val: ${params.value[1]}
<br/>name: ${params.my_name}`
}
"))
Run Code Online (Sandbox Code Playgroud) 我正在尝试将多个列组合成一个向量(理想情况下,我想使用某些正则表达式或指定哪些列dplyr::contains()。无论如何,我不希望使用paste(我希望能够%in%在结果上使用语句来连接列或解决方案)向量。我希望新列是一个值向量,可以使用unnest_wider或一些类似的函数来取消嵌套。我确信这是可能的,只是现在想不出正确的搜索词。这似乎很接近,但不起作用:
df <- tribble(~A, ~B,
1, 2,
3, 4,
5, 6)
df %>%
mutate(C = I(list(A, B)))
Run Code Online (Sandbox Code Playgroud)
结果看起来像这样
A B C
1 1 2 c(1,2)
2 3 4 c(3,4)
3 5 6 c(5,6)
Run Code Online (Sandbox Code Playgroud) 我有一个使用极坐标的图。现在我想使用直箭头向该图添加一些注释geom_segment()。但是,当我使用 时coord_polar(),正如预期的那样,这些线段也会转换为极坐标系。当然,这是适当的行为,但我想在图中添加一些直箭头(在笛卡尔意义上)。我怎样才能最好地做到这一点。这两个问题让我很接近,但还没有(R:如何将多边形的直线和线段与极坐标结合起来?和将线段添加到具有雷达坐标的ggplot2中的直方图中)。对于我的绘图的解决方案,我不能使用 coord_radar 代替。
这在没有 coord_pol 的情况下有效,但在没有 coord_pol 的情况下则无效
library(tidyverse)
df <- tibble(x = rep(letters, each = 5),
y = rep(1:5, 26),
d = rnorm(26 * 5))
p1 <- ggplot() +
geom_tile(data = df,
aes(x = x,
y = y,
fill = d)) +
ylim(c(-2, 5)) +
geom_segment(
aes(
x = "o",
y = -1,
xend = "z",
yend = 3
),
arrow = arrow(length = unit(0.2, "cm")),
col = "red",
size …Run Code Online (Sandbox Code Playgroud)