2014-09-29 13 views
15

mehrere Funktionen in der Basis des R grafischen Systems, einschließlich rect() und polygon(), Unterstützung Schraffur über ihre angle= und density= Argumente:Wie man Cross-Hatching auf ein Polygon mit dem Grid-Grafiksystem anwenden?

x = c(0, 0.5, 1, 0.5) 
y = c(0.5, 1, 0.5, 0) 
par(mar=c(0,0,0,0)) 
plot.new() 
polygon(x, y, angle=45, density=10) 

enter image description here

Wie könnte ich gelten ähnliche schraffiert dargestellt in einem Polygon durch das grid grafische grid.polygon() Funktion des Systems:

library(grid) 
grid.newpage() 
grid.polygon(x,y) 

enter image description here

Ich habe für ?grid.polygon und ?gpar in der Dokumentation sah, und habe durch Paul Murrel Buch über R Grafiken und haben so weit gehen leer abgeschöpft. Fehle ich etwas Offensichtliches? Wenn nicht, gibt es einen einfachen Hack, der das ermöglicht?

+3

ist es nicht möglich. Es ist aber möglich über gridSVG ('grid.patternFill') – baptiste

+0

@baptiste - Gut zu wissen. Von dir kommend nehme ich das als +/definitiv. Danke auch für den Zeiger auf diese GridSVG-Funktion. –

+1

Ich habe es nie wirklich versucht, und es ist relativ neu, denke ich. Hier ist ein Beispiel, https://www.stat.auckland.ac.nz/~paul/Talks/London2013/barchart/barchart.R – baptiste

Antwort

21

Hier ist ein Beispiel mit gridSVG angepasst von Paul Murrell's presentation

library(gridSVG) 
library(grid) 
x = c(0, 0.5, 1, 0.5) 
y = c(0.5, 1, 0.5, 0) 
grid.newpage() 
grid.polygon(x,y, name="goodshape") 

pat <- pattern(linesGrob(gp=gpar(col="black",lwd=3)), 
    width = unit(5, "mm"), height = unit(5, "mm"), 
    dev.width = 1, dev.height = 1) 

# Registering pattern 
registerPatternFill("pat", pat) 
# Applying pattern fill 
grid.patternFill("goodshape", label = "pat") 

grid.export("test-pattern.svg") 

enter image description here

komplexere Grobs ist auch erlaubt, da svg Pflege des Clipping nimmt.

enter image description here

+1

Gekreuzte Balkendiagramme JA! :-) +1 –

+0

funktioniert irgendwie nicht für mich, R Version 3.3.0 und Grid 3.3.0, gridSVG 1.5-0 – xealits

+0

@baptiste wissen Sie, wie Sie das in PDF speichern (nicht SVG) – Eugeny89