R通过给出明确的位置绘制条形码来绘制黑线

时间:2018-02-17 20:02:07

标签: r plot barcode barcode-printing

是否有任何函数用R绘制条形码,它取高度(或说宽度=行数)和绘制黑线的位置。

感谢您的帮助。

大卫。

1 个答案:

答案 0 :(得分:0)

您可以使用zintr包打印条形码。为此,您需要先安装zint,然后再安装zintr。请参阅zintr development site上的安装说明。

然后,创建一个条形码:

library(zintr)

barcode_print("3.14159265", "pi.png") 

enter image description here

如果你想要绘制一个条形码,给定每个段的一系列宽度,这里是使用ggplot2进行演示的一些假数据。实际条形码可以包含给定字符的多个段,下面的示例不会捕获此字符。如果您知道它们的位置和宽度,它只会让您了解如何绘制线段。

library(ggplot2)

barcode = function(x, w, num) {

  bc = data.frame(x, w, num)
  bc$xpos = seq(min(bc$x)+0.15, max(bc$x)-0.15, length=nrow(bc))

  ggplot(bc) +
    geom_rect(aes(xmin=x - 0.5*w, xmax=x+0.5*w, ymin=0, ymax=1), 
              show.legend=FALSE, fill="black") +
    geom_text(aes(label=num, x=xpos, y=-0.07)) +
    coord_fixed(0.5) +
    theme_void()
}

然后,运行该功能:

barcode(x=cumsum(0 + runif(12, 0.05, 0.1)),
        w=runif(12,0.01,0.05),
        num=sample(0:9, 12, replace=TRUE))

enter image description here