簡體   English   中英

R繪制一些unicode字符,但不包括其他字符

[英]R plots some unicode characters but not others

我們的系統管理員剛剛將我們的操作系統升級到SLES12SP1。 我重新安裝了Rv3.2.3並試圖制作情節。 我使用cairo_pdf並嘗試制作一個x-label為即太陽符號的圖,但它不起作用:標簽只是空白。 例如:

cairo_pdf('Rplots.pdf')
plot(1, xlab='\u0298') # the x-label comes up blank
dev.off()

這曾經起作用,但由於某種原因它不再存在。 它適用於其他角色,例如

cairo_pdf('Rplots.pdf')
plot(1, xlab='\u2113') # the x-label comes up with the \ell symbol
dev.off()

當我只是粘貼太陽能符號,即

plot(1, xlab='ʘ')

然后我收到了警告

Warning messages:
1: In title(...) :
  conversion failure on 'ʘ' in 'mbcsToSbcs': dot substituted for <ca>

該機器是德語,但我使用的是美國英語UTF-8語言環境:

> sessionInfo()
R version 3.2.3 (2015-12-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: SUSE Linux Enterprise Server 12 SP1

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

關於如何讓太陽能符號出現的任何提示?

也許您的文本編輯器正在使用latin1,因此您可以將latin1字符發送到您的控制台。

看看編碼

Encoding('ʘ')

和/或嘗試

plot(1, xlab=iconv('ʘ', from='latin1', to="UTF-8"))

但要小心編碼可能會在應對時發生變化。 如果您使用Notepad ++,您可以在文本編輯器之間轉換不同的編碼。

注意:我認為你應該首先使用新系統:

capabilities() #And see what the result for cairo is.

一些想法雖然其中一個需要知道你正在使用什么字體,所以可能需要輸出l10n_info()$MBCSnames(X11Fonts())

選項1)Hershey字體具有作為特殊轉義字符的所有占星符號。 第4頁輸出:

 demo(Hershey)   # has \\SO as the escape sequence for the "solar" symbol.

因此,查看draw.vf.cell函數的代碼,我們看到它使用text函數繪制這些字符,因此使用它來標記軸將需要在參數中添加xpd=TRUE

plot(1, xlab="") ; text(1, .45, "\\SO" , vfont=c("serif", "plain"), xpd=TRUE )

在此輸入圖像描述

選項2)找到您選擇的字體中的太陽能符號。 您可以嘗試將字體設置為“Helvetica”以外的其他字體。 請參閱?X11 ,其中有關於開羅字體的部分。 points函數的幫助頁面有一個名為TestChars的函數,可以讓您以各種字體將字符字形打印到輸出設備。 在這種情況下,您的輸出設備可能是cairopdfx11 在我的設備(UNIX的Mac分支)上,Arial字體具有以下輸出:

   png(type="cairo-png");plot(1, xlab="\u0298");dev.off()

我多年來對類似問題的觀察使我相信開羅圖形更可靠地跨平台。 但是由於R可以在沒有cairo支持的情況下編譯,所以這不是一個確定的事情。

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM