r - 如何在 ggplot2 轴刻度标签中添加上标逗号和空格?
问题描述
我正在尝试将上标添加到 ggplot2 中的 y 轴刻度标签。我希望标签看起来像这样:
ATRS2 0m,0f(其中 0f 和 0m 为上标)。这会产生一个看起来像这样的错误。
解析错误(文本 = 级别(diff_30$Station)):
<文本>:1:8:意外符号
1:ATRS2^0m0f ^
我意识到我正在解析的不是任何类型的 R 表达式,这就是它失败的原因。但是我怎样才能让它工作呢?一定有什么办法。
我创建标签的代码如下所示:
paste(missing_df$Station,paste('^',missing_df$Precip_30_m,"m,",missing_df$TMin_30_f,"f",sep=''),sep='')
我用于绘制和生成标签的 ggplot 代码如下所示。
plot + scale_y_discrete(labels = parse(text = levels(diff_30$Station)))
我试过用这个,但失败了。我看过 bquote,它可能有效,但这种语法让我更加困惑。
plot + scale_y_discrete(labels = expression(parse(text = levels(diff_30$Station))))
任何帮助都会很棒。谢谢!
解决方案
让我们看看下一段代码是否能实现您正在寻找的技巧:
data("iris")
#vector from factor levels
strtest <- levels(iris$Species)
#We build the "label" and leave the result as a list
labels <- lapply(strtest, function(x) bquote(.(x)^'0m,0f'))
#Plotting
ggplot(iris,aes(x = Sepal.Length, y = Species))+
geom_point() +
#we use do.call to "apply" function 'expression' to each element of the list label
scale_y_discrete(labels=do.call(expression,labels))
结果:
推荐阅读
- python - “nomkl”Python 包是做什么用的?
- html - 导航栏中的用户菜单下拉菜单
- javascript - jQuery DataTable 自定义按钮正则表达式列搜索
- python - 我用 python 中的 pygame 制作的 FlappyBird 的 DQN 不要学习
- flutter - 带有边框、形状和三部分的自定义卡片或容器
- sql - 有没有办法选择/列出哪些点与使用 oracle 空间的线型实体的起点/终点在空间上相关?
- reactjs - history.push('/something') 确实推送,但不渲染组件,因为 framer-motion 的 Animate Presence 的 exitBeforeEnter 属性
- javascript - 如何将变量从 React 中的处理程序传递到其他代码区域?
- python - 如何调用函数并将其打印在引号内?
- python - 如何使用 python 请求通过谷歌驱动 API 上传和删除文件