【问题标题】:R Make barchart with unicode symbol instead of barsR用unicode符号而不是条形图制作条形图
【发布时间】:2015-12-29 18:36:00
【问题描述】:

我想绘制一个(某种)条形图,但我想使用 unicode 符号而不是使用条形图。这可能吗?

我知道如何使用 unicode 字符作为符号(点);例如:

plot(1,1,pch=-0x0001F3E2, cex=5, col="gray30")

但是如何让符号代替条形呢?

编辑:
正如 Eric 所建议的,我将尝试编写一个最小的可重现示例...

给定变量 x:

x <- c(2,3,4,2,1)
barplot(x)

我想使用自定义符号而不是条形来生成条形图。比如:

plot(1:5,rep(0,5),pch=-0x0001F3E2, cex=x, col="gray30")

问题是我无法像处理文本那样垂直对齐符号:

plot(1:5,rep(0,5),type="n", ylim=c(0,1),bty="n")
text(1:5,0,"A",cex=c(2,5,3,3,1),adj=c(0.6,0))

所以,我的问题的一种解决方案虽然不理想,但使用 一些带有额外字体包的自定义系统字体。

例如,使用字体“Destiny's Little Houses” (http://www.dafont.com/destiny-little-hous.font) 我可以制作一些漂亮的信息图表:

plot(1:5,rep(0,5),type="n",ylim=c(0,1),bty="n")
text(1:5,0.1,"A",cex=c(2,5,3,3,1),adj=c(0.6,0),family="Destiny's Little Houses")

所以,我有一个图像,其大小根据某个变量(使用“cex”)而变化,而不是条形图。

这并不理想,首先因为我希望能够导入任何图像(例如使用 png 包)。

那么,有没有可能:

  1. 导入图像文件并将其用作绘图中的符号(而不是使用 pch 的可用符号之一)?
  2. 垂直对齐符号以便获得一种自定义条形图?

谢谢 安东尼奥

【问题讨论】:

    标签: r unicode bar-chart


    【解决方案1】:

    这是一个有点骇人听闻的开始(可能没有帮助,因为我不知道您的数据是什么样的)。

    counts <- table(mtcars$gear)
    foo <- barplot(counts, col = c("white", "white", "white"), border=c("white"), axes=F, xaxt="n") 
    points(foo, counts-.5, pch = -0x0001F3E2, cex=2, pos=3)
    

    删除 , axes=F, xaxt="n" 以获取标签和轴。

    【讨论】:

    • 谢谢。但真正的技巧是能够将字符的开头(在这种情况下是建筑物的 unicode 符号)放在 y 轴的底部(在条形图中表现得像条形。问题是当增加一个带有 cex 的符号它“从它的中心生长”(我希望我对此很清楚......)
    • 有道理。你看过geom_rect() in ggplot2吗?见ex. here
    • 但是从我得到的'geom_rect()' 只绘制矩形,通过指定四个角......几乎是'多边形'的简化版本。
    • 如果您分享一个可重现的最小示例来解决您的问题,我们会更容易为您提供帮助。我们可以使用和使用的东西向您展示如何解决您的问题。我带你了解this SO post,了解如何在 R 中制作一个可重复的出色示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2015-04-10
    • 2021-04-22
    • 1970-01-01
    • 2013-06-16
    • 2018-05-17
    相关资源
    最近更新 更多