Closed guokai8 closed 1 year ago
Could you please provide a full reproducible example, so we can try on our end?
I just use very simple example:
library(export)
p<-plot(1:10)
graph2ppt(x=p,file="test.pptx")
I run this on ubuntu.
Is the problem here not just that you are trying to pass a base R plot as an object, which is not possible? (You can only do that with ggplots) So you would have to do instead
library(export)
plot(1:10)
graph2ppt(file="test.pptx")
Does that work OK for you?
I am sorry I don't have graphic interface on my server.
Ha then you would have to use
library(export)
plot.fun = function(){
print(plot(1:10))
}
graph2ppt(fun=plot.fun, file="test.pptx")
I think... (You have to set your working directory first, or include the path in the filename)
I try it but it doesn't work. Thanks!
And does exporting ggplots work for you? E.g.
library(export)
library(ggplot2)
library(datasets)
x=qplot(Sepal.Length, Petal.Length, data = iris,
color = Species, size = Petal.Width, alpha = I(0.7))
graph2ppt(x=x, file="test.pptx")
One other thing that may be causing problems is that I believe export is expecting the latest version of R, R 3.5.1... When I try on my ubuntu workstation here it all works so I am not quite sure where the problem is coming from... Could be that it has to do something with the fact you don't have a graphics interface on your server (we've always tested the package from within RStudio with a graphics device open).... But I'll look into it...
Could you try if this works on your configuration
library(officer)
doc <- read_pptx()
doc <- add_slide(doc, "Title and Content", "Office Theme")
doc <- ph_with_vg_at(doc, code = barplot(1:5, col = 2:6),
left = 1, top = 2, width = 6, height = 4)
print(doc, target = "vg.pptx")
If that one doesn't work without a graphics interface then I'm afraid export
also won't work, since we rely on officer
and rvg
...
Hi, I try it. it works. Thanks!
So officer
works, but the export
package still doesn't work? Or does exporting ggplots
work also in export
?
Yes. export
seems doesn't work but officer
did. I haven't try ggplots
.
OK I'll look into it then, because that means I should be able to fix export
to make it work for this configuration... Would you know by any chance how to set up an R installation without a screen device?
It automatic setup on the server. Btw, the thing happened since I want build an shiny app("http://hurlab.med.und.edu/VennDetail/") by using your export
package to export ppt and doc. Now it works. I found the reason also comes from UpSetR
when I try to save the upset
figure which always call grid.newpage
function. I modified the upset
code and used the ph_with_vg_at
function.
We just did an update to the github export version to make it work also for R users without a screen device. You can install it with
devtools::install_github("tomwenseleers/export")
See if that works for you!
OK. I will try the new version. Thanks!
And did it work for you in the end?
Hi Tom,
I am having this same issue. graph2ppt works in Rstudio when I export a dendrogram (or anything):
Example:
plot(hc.dend)
graph2ppt(file="dendrograms.pptx", append=F)
But returns the error below when I run it as an Rscript from the bash command line (no screen device):
Error in doc_parse_raw(x, encoding = encoding, base_url = base_url, as_html = as_html, :
StartTag: invalid element name [68]
Calls: graph2ppt ... as_xml_document.character -> read_xml.raw -> doc_parse_raw
I re-installed the package using devtools::install_github("tomwenseleers/export") & that didn't fix it.
Thanks
Hi, Sorry for the late reply. it seems the new version still not works. Kai
Can't reproduce this error on my side, so closing this for now. But feel free to reopen with a reproducible example in case problems would persist.
Hi, When I use graph2ppt on ubuntu system platform. It report the error:
And below is the details: R version 3.4.4 (2018-03-15) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 16.04.5 LTS
Matrix products: default BLAS: /usr/lib/libblas/libblas.so.3.6.0 LAPACK: /usr/lib/lapack/liblapack.so.3.6.0
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
attached base packages: [1] stats graphics grDevices utils datasets methods base
other attached packages: [1] export_0.2.2.9000