ggplot2 轴标签中小于等于

iro*_*onv 2 r ggplot2

我试图让 xaxis 标签中的 <= 正确显示。我看过以前的帖子expression。在每个示例中,只有 1 个标签是显式(手动)完成的。就我而言,有几个带有 <= 的标签。我从文件中读取了因子标签。

faclab <- "value,label
1,<= 1
2,1 < ... <= 2
3,2< ... <= 3
4,>3"
labels.dt <- fread(faclab)

data <- data.table(value=sample(labels.dt[['value']],100,replace=TRUE))

ggplot(data, aes(factor(value))) + geom_bar(aes(y=(..count..)/sum(..count..))) +
   scale_x_discrete(breaks=labels.dt[['value']], labels=labels.dt[['label']])
Run Code Online (Sandbox Code Playgroud)

luk*_*keA 5

替换"<="为适当的 unicode 字符"\\u2264"( "\xe2\x89\xa4"):

\n\n
stringi::stri_replace_all_fixed(\n  c("<= 1", ">= 2"), \n  c("<=", ">="), \n  c("\\u2264", "\\u2265"), \n  vectorize_all = F\n)\n# [1] "\xe2\x89\xa4 1" "\xe2\x89\xa5 2"\n
Run Code Online (Sandbox Code Playgroud)\n\n

例如:

\n\n
library(tidyverse)\nlibrary(data.table)\nfaclab <- "value,label\n1,<= 1\n2,1 < ... <= 2\n3,2< ... <= 3\n4,>3"\nlabels.dt <- fread(faclab)\ndata <- data.table(value=sample(labels.dt[[\'value\']],100,replace=TRUE))\nggplot(data, aes(factor(value))) + geom_bar(aes(y=(..count..)/sum(..count..))) +\n  scale_x_discrete(\n    breaks=labels.dt[[\'value\']], \n    labels=stringi::stri_replace_all_fixed(labels.dt[[\'label\']], "<=", "\\u2264")\n  ) \n
Run Code Online (Sandbox Code Playgroud)\n\n

在此输入图像描述

\n