显示大于或等于号
Posted
技术标签:
【中文标题】显示大于或等于号【英文标题】:Displaying a greater than or equal sign 【发布时间】:2012-10-22 23:30:26 【问题描述】:我有一个这样生成的情节:
ggplot(dt.2, aes(x=AgeGroup, y=Prevalence)) +
geom_errorbar(aes(ymin=lower, ymax=upper), colour="black", width=.2) +
geom_point(size=2, colour="Red")
我像这样控制 x 轴标签:
scale_x_discrete(labels=c("0-29","30-49","50-64","65-79",">80","All")) +
这可行,但我需要将“>80”标签更改为“≥80”。
但是“≥80”显示为“=80”。
如何显示大于等于号?
【问题讨论】:
@JanDvorak,很遗憾没有。它是为了出版,所以它需要看起来尽可能好。我想选择 >79,但资深作者特别想要 ≥80 你试过expression("">=80)
吗?见?plotmath
。
@plannapus - 做得很好!谢谢-如果您回答,我会投票并接受...
看来@mnel 比我快:)
我在看到你的评论之前就发布了(如果这样会更好?)
【参考方案1】:
您可以传递一个表达式(包括phantom(...)
来伪造一个前导>=
内
label
的 scale_x_discrete(...)
参数
例如
.d <- data.frame(a = letters[1:6], y = 1:6)
ggplot(.d, aes(x=a,y=y)) + geom_point() +
scale_x_discrete(labels = c(letters[1:5], expression(phantom(x) >=80))
有关创建数学表达式和 this相关SO问答
【讨论】:
【参考方案2】:你可以使用
expression("">=80)
所以你的全轴标签看起来像:
scale_x_discrete(labels=c("0-29","30-49","50-64","65-79",expression("">=80),"All")) +
我在使用 unicode 导出绘图时遇到了麻烦,但表达式函数更一致。
【讨论】:
【参考方案3】:plot(5, ylab=expression("T ">="5"))
【讨论】:
【参考方案4】:使用表达式的替代方法是 Unicode 字符,在本例中为 Unicode 字符“大于等于”(U+2265)。复制@mnel 的例子
.d <- data.frame(a = letters[1:6], y = 1:6)
ggplot(.d, aes(x=a,y=y)) + geom_point() +
scale_x_discrete(labels = c(letters[1:5], "\u2265 80"))
如果您难以记住复杂的表达式语法,或者如果您需要换行符,而这些表达式不允许使用,那么 Unicode 是一个不错的选择。不利的一面是,特定的 Unicode 字符是否有效取决于您选择的图形设备和字体。
【讨论】:
问题:pdf
设备不支持此字符,而是打印...。我不在ggplot
工作,所以也许这不是该软件包中的问题,但从基本 R 中保存很麻烦。
@MichaelChirico:解决方案:除非您有令人信服的理由使用pdf
,否则请改用cairo_pdf
。
你能举例说明这样一个令人信服的理由吗?
@otsaw 我在使用 postscript
生成 eps 的设备时遇到了同样的问题。有您知道的cairo_postscript
或类似的解决方案吗?
在调用 paste
时工作,这很好!以上是关于显示大于或等于号的主要内容,如果未能解决你的问题,请参考以下文章
谁写过xlst 我想问用xsl:when表达式不等于号怎么写
Linux脚本练习之script058-传递一个用户名参数给脚本,如果用户的 id 号大于等于 500,且其默认 shell 为以 sh 结尾的字符串,则显示能登录否则显示无法登录系统。