无法在R中使用CairoPDF编写中文文本

无法在R中使用CairoPDF编写中文文本,r,plot,multilingual,R,Plot,Multilingual,我正在使用cairopdf,正如我在上一个问题中建议的那样 用于在R上生成中文文本 library(Cairo) mydata = matrix( c( 2:6, c( 2,4,2,6,3 ) ), nrow= 2 ) mylabs = c( "木材", "表", "笔", "垃圾桶", "杯" ) CairoPDF("Report_chinese.pdf", family="GB1") barplot( mydata, beside=T, horiz= "T", names.arg= myl

我正在使用cairopdf,正如我在上一个问题中建议的那样

用于在R上生成中文文本

library(Cairo)
mydata = matrix( c( 2:6, c( 2,4,2,6,3 ) ), nrow= 2 )
mylabs = c( "木材", "表", "笔", "垃圾桶", "杯" )
CairoPDF("Report_chinese.pdf", family="GB1")
barplot( mydata, beside=T, horiz= "T", names.arg= mylabs, las= 1, col= c( "red", "blue" ) )
dev.off()
但在条形图上并没有中文文本。如何修复此pblm

问候

cairo\u pdf()
适合我:

mydata = matrix( c( 2:6, c( 2,4,2,6,3 ) ), nrow= 2 )
mylabs = c( "木材", "表", "笔", "垃圾桶", "杯" )
cairo_pdf("Report_chinese.pdf")
barplot( mydata, beside=T, horiz= "T", names.arg= mylabs, las= 1, col= c( "red", "blue" ) )
dev.off()
如果要使用
Cairo
库,必须首先定义具有CJK字形的字体(编辑:注释中的每个请求,此示例使用不同的字体作为标签和标题):

请注意,
CairoFonts()
的参数只是任意的指针:我使用了
bold=
参数来指定斜体字体,并在调用
mtext()
时使用
font=2
访问它(请参阅
?par
中的
font
参数)。确保用“AR PL UKai CN:Book”和“Century Schoolbook L:Italic”替换系统上实际使用的字体

如果您不喜欢该方法,可以通过多次调用
CairoFonts()
来获得相同的结果:

CairoFonts(regular="AR PL UKai CN:Book")
CairoPDF("Report_chinese.pdf")
barplot( mydata, beside=T, horiz= "T", names.arg= mylabs, las= 1, col= c( "red", "blue" ) )
CairoFonts(regular="Century Schoolbook L:Italic")
mtext("This is the title", side=3, line=1) #implicit argument: font=1
dev.off()

我想在前面的问题中,有人向您推荐了
cairo\u pdf
而不是
CairoPDF
。谢谢!CairoFonts是非常好的解决方案。还有一件事,我怎样才能保留两种不同的字体。类似于使用CairoFonts的标题Droid Sans Fallback(常规='Droid Sans Fallback')和图例普通中文文本(非粗体)。在生成图例之前,我使用了CairoFonts(regular='GB1'),图例(“bottomright”),c('垃圾桶","木材"), cex=1.5,bty=“n”,fill=c(rgb(.059,.412,.659),rgb(.537,.769,.933));但似乎不起作用。您可以多次调用
CairoFonts()
在打印过程中更改字体。或者,您可以将各种字体定义为
CairoFonts
italic
bold
参数(即使它们实际上不是斜体或粗体),然后用R字体代码触发它们的使用(请参见
?par
并查找
'font'
)。你能举个例子吗。这对我来说似乎有点困难。
CairoFonts(regular="AR PL UKai CN:Book")
CairoPDF("Report_chinese.pdf")
barplot( mydata, beside=T, horiz= "T", names.arg= mylabs, las= 1, col= c( "red", "blue" ) )
CairoFonts(regular="Century Schoolbook L:Italic")
mtext("This is the title", side=3, line=1) #implicit argument: font=1
dev.off()