Paul Murrell
2017-Oct-13 02:24 UTC
[R] [FORGED] can't print ggplot with Chinese characters to pdf files
Hi Instead of ... ggsave("test_plot_chinese.pdf", m2) ... try ... cairo_pdf("test_plot_chinese.pdf") print(m2) dev.off() Paul On 13/10/17 02:12, John wrote:> I install the Chinese font "Kaiti TC" on my mac, but I can't print the > figures to pdf file by "marrangeGrob" command, which is in the package > "gridExtra". Error message after I type "ggsave(......)" (last line of the > program): > > "Saving 7.47 x 5.15 in image > Error in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y, : > invalid font type > In addition: There were 50 or more warnings (use warnings() to see the > first 50)" > > How can I install the font so that I can see the figures on the pdf files? > Some information that may be useful: > (1) If I use the English ggtitle, there is no problem at all. The pdf file > present the figures perfectly. > (2) If I use Chinese title, I can still see the figures p1 and p2 on > Studio, but I can't see it at the pdf file produced by ggsave. It gives an > error message > > > > rm(list=ls()) > library(ggplot2) > library(gridExtra) > df1<-data.frame(x=1:2, y=3:4, z=5:6) > #p1<-ggplot(df1, aes(x=x, y=y))+geom_line()+ggtitle("test1") > #p2<-ggplot(df1, aes(x=x, y=y))+geom_line()+ggtitle("test2") > p1<-ggplot(df1, aes(x=x, y=y))+geom_line()+ggtitle("??") #Chinese title > p2<-ggplot(df1, aes(x=x, y=y))+geom_line()+ggtitle("??") #Chinese title > p1<-p1+theme(text = element_text(family = "Kaiti TC")) > p2<-p2+theme(text = element_text(family = "Kaiti TC")) > > p<-array(list(NA), dim=2) > p[[1]]<-p1 > p[[2]]<-p2 > p_series <- lapply(1:(length(p)), function(.x) p[.x][[1]]) > m2 <- marrangeGrob(p_series, nrow=2, ncol=1) > ggsave("test_plot_chinese.pdf", m2) > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >-- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/
Paul Murrell
2017-Oct-13 02:55 UTC
[R] [FORGED] can't print ggplot with Chinese characters to pdf files
Hi By the looks of it, you need to install Cairo graphics ... https://www.cairographics.org/download/ Paul On 13/10/17 15:48, John wrote:> Thanks, Paul. Following your solution, ?I got this error message: > > Warning message: > In cairo_pdf("test_plot_chinese.pdf") : failed to load cairo DLL > > Is there anything else I need to install? > > Thanks, > > John > > 2017-10-12 19:24 GMT-07:00 Paul Murrell <paul at stat.auckland.ac.nz > <mailto:paul at stat.auckland.ac.nz>>: > > Hi > > Instead of ... > > ggsave("test_plot_chinese.pdf", m2) > > ... try ... > > cairo_pdf("test_plot_chinese.pdf") > print(m2) > dev.off() > > Paul > > > On 13/10/17 02:12, John wrote: > > I install the Chinese font "Kaiti TC" on my mac, but I can't > print the > figures to pdf file by "marrangeGrob" command, which is in the > package > "gridExtra". Error message after I type "ggsave(......)" (last > line of the > program): > > "Saving 7.47 x 5.15 in image > Error in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), > x$x, x$y,? : > ? ?invalid font type > In addition: There were 50 or more warnings (use warnings() to > see the > first 50)" > > How can I install the font so that I can see the figures on the > pdf files? > Some information that may be useful: > (1) If I use the English ggtitle, there is no problem at all. > The pdf file > present the figures perfectly. > (2) If I use Chinese title, I can still see the figures p1 and p2 on > Studio, but I can't see it at the pdf file produced by ggsave. > It gives an > error message > > > > rm(list=ls()) > library(ggplot2) > library(gridExtra) > df1<-data.frame(x=1:2, y=3:4, z=5:6) > #p1<-ggplot(df1, aes(x=x, y=y))+geom_line()+ggtitle("test1") > #p2<-ggplot(df1, aes(x=x, y=y))+geom_line()+ggtitle("test2") > p1<-ggplot(df1, aes(x=x, y=y))+geom_line()+ggtitle("??") > #Chinese title > p2<-ggplot(df1, aes(x=x, y=y))+geom_line()+ggtitle("??") > #Chinese title > p1<-p1+theme(text = element_text(family = "Kaiti TC")) > p2<-p2+theme(text = element_text(family = "Kaiti TC")) > > p<-array(list(NA), dim=2) > p[[1]]<-p1 > p[[2]]<-p2 > p_series <- lapply(1:(length(p)), function(.x) p[.x][[1]]) > m2 <- marrangeGrob(p_series, nrow=2, ncol=1) > ggsave("test_plot_chinese.pdf", m2) > > ? ? ? ? [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org <mailto:R-help at r-project.org> mailing list > -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > <https://stat.ethz.ch/mailman/listinfo/r-help> > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > <http://www.R-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > > > -- > Dr Paul Murrell > Department of Statistics > The University of Auckland > Private Bag 92019 > Auckland > New Zealand > 64 9 3737599 x85392 > paul at stat.auckland.ac.nz <mailto:paul at stat.auckland.ac.nz> > http://www.stat.auckland.ac.nz/~paul/ > <http://www.stat.auckland.ac.nz/~paul/> > >-- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 paul at stat.auckland.ac.nz http://www.stat.auckland.ac.nz/~paul/
Reasonably Related Threads
- [FORGED] can't print ggplot with Chinese characters to pdf files
- can't print ggplot with Chinese characters to pdf files
- [FORGED] can't print ggplot with Chinese characters to pdf files
- [FORGED] can't print ggplot with Chinese characters to pdf files
- [FORGED] can't print ggplot with Chinese characters to pdf files