我有以下数据:
我正在为每个不同的
vds
绘制V_gs
上的值,其中V_gs
具有不同的颜色:
我尝试过使用:
scale_colour_discrete(
labels = {function(x) {
value <- gsub(".*\\.\\.(\\+*)", "\\1", x)
bquote('U[GS]' ~ ' = ' ~ .(value))}
}
) +
但是我收到以下错误:
Error in rep(value, length.out = nrows) :
attempt to replicate an object of type 'language'
然后我尝试了
label_bquote()
并得到了相同的错误,但是使用了 'closure'
。
我是否走在正确的轨道上,或者是否有其他更好的方法来实现我想要的?
您的示例数据是一张图片,所以我自己制作了。
您的代码不完整,因此我无法重现您的错误消息,这使得很难或不可能说出出了什么问题。但是,您提供的代码中确实有一个额外的左大括号。
无论如何,你都走在正确的道路上。
我简化了您的绘图语法,但需要对标签函数进行矢量化,因为该函数以某种方式为 2 个中断生成 3 个标签。
library(dplyr)
library(ggplot2)
data <- tibble(
x = runif(100),
y = runif(100),
color = rep(c("V_.gs..3V", "V_.gs..5V"), 50)
)
data %>%
ggplot(aes(x, y, color = color)) +
geom_point() +
scale_colour_discrete(
labels = function(x) {
sapply(x, function(x) {
value <- gsub(".*\\.\\.(\\+*)", "\\1", x)
bquote(U[GS] == .(value))
})
}
)
创建于 2024-04-18,使用 reprex v2.1.0