2015-12-29 42 views
0

我想繪製(某種)條形圖,但不是使用條形圖,而是使用unicode符號。這可能嗎?我知道如何使用unicode字符作爲符號(點);例如:R使用unicode符號而不是條形圖創建條形圖

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

但是如何才能使符號代替酒吧?

編輯:
正如埃裏克的建議,我會嘗試寫一個最小的可重複的例子...

由於變量x:

​​

我想用產生barplot自定義符號而不是酒吧。喜歡的東西:

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

的問題是,我不能夠垂直對齊sysmbols,因爲我可以用文字做:

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)) 

所以,一種的解決我的問題,雖然不是很理想,是使用 一些包含extrafont的自定義系統字體。

例如,使用字體「命運的小房子」(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可用sysmbols之一)的符號?
  2. 垂直對齊符號,以便獲得一種自定義條形圖?

感謝 安東尼奧

回答

0

這裏是一個有點hackish的開始(可能沒有幫助,因爲我不知道你的數據是什麼樣子)。

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"以獲取標籤和座標軸。

+0

謝謝你。但真正的技巧是能夠將字符的開頭(在這種情況下是建築物的unicode符號)放在y軸的底部(表現爲條形圖中的條形圖)。問題在於增加一個帶有cex的符號,它「從其中心生長出來」(我希望我很清楚這個......) – marxco

+0

有道理,你看看ggplot2中的''geom_rect()'](httpd://docs.ggplot2 .org/current/geom_rect.html)?參見[ex。here](http:// stackoverflow。com/a/14591388/1305688) –

+0

但是從我得到的'geom_rect()'只繪製矩形,通過指定四個角...幾乎是一個簡化的「多邊形」。 – marxco