2011-11-19 15 views

Respuesta

11

Los pch personajes son símbolos de fuentes reales, por lo que se limitarán a lo que está disponible en sus fuentes. Otra alternativa es usar los comandos de trazado primitivos para crear sus propios "símbolos". Esto es muy flexible, aunque puede haber problemas con el cambio de tamaño, etc., al mezclar los dos métodos. Este método se implementa en el buen my.symbols() ejemplo:

require(TeachingDemos) 

bwDiamond <- function() { 
    plot.new() 
    polygon(c(0, 0.5, 1, 0.5, 0), c(0.5, 0, 0.5, 1, 0.5), lty=1) 
    polygon(c(0.25, 0.5, 1, 0.75, 0.25), c(0.25, 0, 0.5, 0.75, 0.25), col=1) 
} 

data <- c(1,2,3) 

dev.new(width=4, height=4) 
plot(data, type='n') 
points(data[1:2], pch=c(23,18), cex=c(2.5,3)) 
my.symbols(data[3], data[3], symb=bwDiamond, symb.plots=TRUE, inches=0.22) 

enter image description here

Véase también este Q/A: Point symbols in R

+0

perfecto, gracias @ John. Sin embargo, puedo ver cómo funciona muy bien con los polígonos, pero ¿cómo abordaría los puntos del círculo llenos a medio color? –

+0

@GeekOnAcid Heh ... buen punto. Supongo que puedes fingir como un polígono, pero estaría bien si hubiera una manera de hacerlo con solo 3 anclajes. No obstante, no sé de ninguno. –

1

@JohnColby: Ok, aquí hay una manera de dibujar un círculo de color media punto, usando grid.semicircle del paquete lodplot. No es solución tan ordenada como la tuya con los polígonos, pero hace el trabajo:

require(lodplot) 
dev.new(width=4,height=4) 
plot(1:3,type="n") 
grid.semicircle(100,150,10,5)#left circle on plot below 
grid.semicircle(100,150,10,5,side=3,col=1) 
grid.semicircle(200,150,10,5,side=2)#right circle on plot below 
grid.semicircle(200,150,10,5,side=4,col=1) 

Half-circles plot example

+0

¡Bonito hallazgo! Esa función de semicírculo será útil. –

Cuestiones relacionadas