作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 ggplot 散点图中突出显示某个文本。我的代码在这里
library(ggplot2)
labels <- c("green", "blue", "orange", "blue", "green","red","purple","black")
num_1 <- c(1,2,3,4,5,6,7,8)
num_2 <- c(5,9,3,7,4,3,1,8)
df <- data.frame(labels,num_1,num_2)
p <- ggplot(df, aes(num_1,num_2,label=labels)) + geom_text()
p
例如,我想通过将字体更改为粗体或将颜色更改为黄色来突出显示文本“绿色”。两者都有效,但我无法使其正常工作。我试过使用 gghighlight 但还没有找到让它工作的方法。
最佳答案
您的三个建议都有效。使用 gghighlight,您必须为要突出显示的数据点设置谓词:
library(ggplot2)
labels <- c("green", "blue", "orange", "blue", "green","red","purple","black")
num_1 <- c(1,2,3,4,5,6,7,8)
num_2 <- c(5,9,3,7,4,3,1,8)
df <- data.frame(labels,num_1,num_2)
ggplot(df, aes(num_1,num_2,label=labels)) +
geom_text() +
gghighlight::gghighlight(labels == "green")
#> Warning: Tried to calculate with group_by(), but the calculation failed.
#> Falling back to ungrouped filter operation...
如果你想留在 Vanilla ggplot2,你可以简单地在 aes()
函数中使用 ifelse()
:
ggplot(df, aes(num_1, num_2, label= labels)) +
geom_text(aes(fontface = ifelse(labels == "green", "bold", "plain")))
如果您想直接设置颜色,而不先将它们映射到比例尺,您可以使用 I()
函数来使用不映射/转换数据的恒等比例尺。
ggplot(df, aes(num_1, num_2, label= labels)) +
geom_text(aes(colour = I(ifelse(labels == "green", "yellow", "black"))))
由 reprex package 创建于 2021-04-16 (v1.0.0)
关于r - 如何在与特定文本匹配的ggplot中突出显示geom_text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67130069/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!