Thursday 18 April 2019

Resources to convert from SVG to RGML...

Helped by https://davetang.org/muse/2019/02/22/importing-vector-images-into-r/

So the best workflow, I have is SVG to EPS (encapsulated post script) through illustrator
EPS to RGML through PostScriptTrace
In this way icons can be used in images in R using the grid package...


https://github.com/sjp/grConvert

The RGML format is specific to the grImport package. It is a very simple graphics format that describes an image in terms that the R graphics system can understand. It will be described in more detail in later sections. ... The RGML formatin this example is roughly a one-to-one translation of the PostScript code.16 Apr 2009

https://www.rdocumentation.org/packages/grImport/versions/0.9-1.1/topics/PostScriptTrace

grImport::PostScriptTrace()
works and is maintained....



Inkscape - could be used in the command line...
http://tavmjong.free.fr/INKSCAPE/MANUAL/html/CommandLine.html

XSLT for converting from one kind of XML to another
https://github.com/ropensci/xslt
This may just be too difficult but who knows...

Ghostscript
https://stackoverflow.com/questions/9793120/how-to-covert-svg-to-eps-in-ghostscript
Converting from SVG to EPS...


Not sure about this but might be interesting
https://github.com/akrinke/svg2cairo


https://cairosvg.org/
Python library...

SVG to ps possibility...

https://stackoverflow.com/questions/9793120/how-to-covert-svg-to-eps-in-ghostscript


Recent grImport blog post...

Exploring this post https://davetang.org/muse/2019/02/22/importing-vector-images-into-r/

Interesting point about one of the commands:

head -17 shapes.eps.xml

It is a UNIX command not an R one!


Tuesday 16 April 2019

Reading about grImport2

So in 2013, Potter and Murrell developed grImport2.
https://sjp.co.nz/projects/grimport2/grImport2.html

This is to import SVG graphics into R.

Reading about this has revealed at key point:

"A complication with SVG is that unlike PostScript and PDF it does not require the use of a physical coordinate system (e.g. points). This, among other things (such as attribute precedence), complicates the process of importing an SVG image. However, if we restrict the SVG we support to the SVG that is generated by the Cairo graphics library [10], then we know that the SVG images that we import are guaranteed to belong to a common coordinate system and other features of the image will be flattened, making it easier to parse. In particular, this means that grImport2 does not need to parse all of the SVG image format, only the subset of SVG that Cairo generates. Furthermore, because Cairo is is a supported graphics renderer for many open source libraries that import vector images, we know that it is possible for many input formats to be mapped to the Cairo SVG subset of SVG."

Thus there is more than one kind of SVG!

Work flow seems to be:

R> # Converting the image
R> library(grConvert)
R> convertPicture("nzflag-original.svg", "nzflag-cairo.svg")
R> # Reading it into R
R> library(grImport2)
R> nzflag <- readPicture("nzflag-cairo.svg")

So convertPicture() into cairo svg first and then readPicture()

Got to be worth trying...

Monday 15 April 2019

Going back to personograph

So the speed of the rendering of the images in personograph may indicate that it is best to just
made adaptations to this line of work.

The icons in this package are in the inst folder.
They are named:
1.ps.xml

and represent post script files turned into xml with the grImport package.

https://cran.r-project.org/web/packages/grImport/vignettes/import.pdf

Adding extra icons should be quite feasible. Find a postscript file (PS) and use grImport to turn it into xml.

However, is it possible to plot with different icons? I suspect so but I will need to learn more coding to make that certain, I think.

Second issue would seem to be to be able to change the number of rows - the dimensions argument does this...
Again this shouldn't be too difficult, I think...



Finally adding the random element might be a bit more difficult...



So here is some more reading:
https://davetang.org/muse/2019/02/22/importing-vector-images-into-r/

icon arrays

Online tool:
http://www.iconarray.com/why


So R seems to have an options here:




Are these the same as waffle plots:

Also there is this:



Some reading:



Other links: