代码之家  ›  专栏  ›  技术社区  ›  Banjer

如何在R中的绘图中添加短划线?

  •  6
  • Banjer  · 技术社区  · 15 年前

    我在R中创建了一个绘图,需要在一些轴标签上添加一个短划线,而不是每天使用的连字符。

    axis(1, at=c(0:2), labels=c("0-10","11-30","31-70"))
    

    我在Linux上运行R版本2.8.1。

    3 回复  |  直到 8 年前
        1
  •  1
  •   kenm    15 年前

    您使用的是Linux,因此根据R对Unicode的理解程度,您可以将一个备用键盘键映射到 Compose Key 然后把它打出来。要获得__,请按组合键,然后按普通键两到三次(取决于系统的映射)。请注意,当使用组合键时,您不能按住它-只需按顺序按键即可。

    具体的启用方式有所不同,但在Ubuntu中,System->Preferences->键盘、布局选项卡、布局选项按钮,并选择适合“组合键位置”项目的内容。我通常用菜单键。

    编辑:我的错,你想要一个短划线,而不是短划线。然后,短划线(_”)是组成短划线周期,而不是组成短划线。

        2
  •  2
  •   ayman    15 年前

    在本例中,可以使用 expression() 函数以正确呈现短划线:

    axis(1, 
         at=c(0:2), 
         labels=c(expression(0-10), 
                  expression(11-30), 
                  expression(31-70)))
    
        3
  •  1
  •   tedtoal    8 年前

    老问题,但还是个问题…

    我正在OSX 10.12.2上使用R VSN 3.3.2,用plot()将其打印到一个PDF文件中,我将该文件导入Affinity Designer VSN 1.5.4。表单“2-0”的轴标签显示在关联设计器中,破折号与“0”重叠。我不知道问题是否出在亲和力设计器或PDF文件上。能够尝试各种Unicode短划线字符是很好的,但是R和PDF文件似乎都还没有完全装备好,无法使用默认字体处理Unicode。

    解决方案:R中的“cairo”包:

    library("cairo")
    d = 0:11
    names(d) = paste(0:11, "-", 11:0, sep="")
    names(d) = gsub("-", "\U2012", names(d)) # U+2012 is "figure dash"
    d
    barplot(d)
    cairo_pdf(filename="x.pdf", width=11, height=8)
    barplot(d)
    dev.off()
    

    破折号显示在R控制台、默认的R打印设备和使用预览和关联设计器查看的PDF文件中。