首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >修复轴标签中的排版

修复轴标签中的排版
EN

Stack Overflow用户
提问于 2013-02-09 04:31:59
回答 4查看 1.7K关注 0票数 20

前言:我想在没有后处理的情况下从R创建发布级图形。我所在研究所的其他研究人员总是在图形软件(如Adobe Illustrator)中执行后处理。我希望能避免这种情况。

我的抱怨是R没有对负数使用正确的负号(特别是在绘图轴中):

代码语言:javascript
复制
plot(-20:-1, rnorm(20) + 1 : 20)

(我圈出了违规者,请您考虑。)

作为一个排版书呆子(这是真的!查看我的职业简历!)这是不可接受的。我需要在这里使用正确的Unicode字符ᴍɪɴᴜꜱꜱɪɢɴ(U+2212,“−”)。我的一个朋友在发布之前通过替换Adobe Illustrator中的所有减号来实现这一点,但我不禁认为肯定有更好的方法-在R- to中实现这一点;而且不会强迫我手动替换所有轴标签。

(我目前没有使用ggplot2,但如果有一个只能与ggplot2一起使用的解决方案,我会很乐意接受的。)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-04-03 21:21:16

新的包signs完全按照OP的要求来做。以下是该网站的一个示例:

代码语言:javascript
复制
library(dplyr)
library(ggplot2)
library(ggrepel)

theme_set(theme_gray())
theme_update(panel.grid.minor = element_blank())

p <- 
  ggplot(sleep) +
  aes(group, extra) +
  geom_point() +
  xlab("Drug") +
  ylab("Extra Sleep (hours)")

label_hours <- function(mapping) {
  geom_text_repel(
    mapping,
    nudge_x       = -.1,
    direction     = "y",
    segment.size  = .4,
    segment.color = "grey75",
    hjust         = "right"
  )
}

p +
  label_hours(
    mapping = aes(
      label = case_when(
        group == 1 ~ signs(extra, accuracy = .1), # Unicode minuses
        group == 2 ~ number(extra, accuracy = .1) # ASCII minuses
      )
    )
  ) +
  scale_y_continuous(
    limits = c(-4, 6),
    breaks = seq(-4, 6),
    labels = signs_format(accuracy = .1) # Unicode, analogous to number_format() 
  )

票数 3
EN

Stack Overflow用户

发布于 2013-02-09 04:55:30

也许手动绘制轴和标签,而不是接受默认值?

代码语言:javascript
复制
plot(-20:-1, rnorm(20) + 1 : 20, xaxt="n")
Axis(-20:-1, at=seq(-20,-5,5), side=1,
  labels=paste("\U2212",seq(20,5,-5),sep=""))

票数 7
EN

Stack Overflow用户

发布于 2013-02-09 05:34:28

另一种方法与Joshua Ulrich提供的方法几乎相同,只是您可以让R计算轴滴答:

代码语言:javascript
复制
plot(-20:-1, rnorm(20) + 1 : 20, xaxt="n")
at <- axTicks(1, usr=par("usr")[1:2])
labs <- gsub("-", "\U2212", print.default(at))
axis(1, at=at, labels=labs)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14780860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档