############################
### GRAFICOS BASICOS ###
############################
# En R se pueden hacer graficos muy complejos, especialmente
# si utilizamos paquetes diseñados especificamente para ello.
# Vamos a empezar poco a poco, sin cargar ningun paquete, porque
# muchos de los comandos que aprendamos nos serviran de base
# para manejar con mas soltura los graficos complejos.
x = c(3,3,5,8,10,7,4,6,8,10)
x
y = c(15,45,44,40,35,33,30,27,22,16)
y
z = rep((c("A","B")),c(5,5))
z
df=data.frame(x,y,z)
df
x11() # Abre una ventana para la representacion grafica
plot(x, y) # Scatter plot.
# El primer vector indica las coordenadas de los puntos
# en el eje de las abcisas (X)
# y el segundo en el de las ordenadas (y).
# Representa los puntos de las coordenadas
# en el mismo orden que tienen los vectores.
plot(df$x, df$y)
boxplot(x) # Diagrama de cajas y bigotes o boxplot.
boxplot(df$y)
boxplot(x ~ z) # Diagrama de cajas y bigotes o boxplot
# en funcion de una variable con dos niveles.
boxplot(df$x ~ df$z)
barplot(x) # Grafica de barras.
x
y
qqplot(x,y) # Quantile Quantile plot.
# Ordena los valores de ambos vectores
# y los representa unos frente a los otros con puntos.
qqnorm(x) # Compara la distribucion de datos de un vector
# con los valores teoricos de una distribucion normal.
qqline(x) # Añade una linea para hacer la evaluacion visial
# mas facil.
# Cuanto mas se aproximen todos los puntos a la linea,
# mas proximos a una distribucion normal
# estaran los valores del vector.
hist(x) # Histograma.
# Representa la frecuencia de los datos del vector,
# dados unos rangos de datos.
################################################################
### DISPOSITIVOS GRAFICOS. Trabajar y organizar ventanas ###
################################################################
x11()
dev.list() # Nos da la lista de dispositivos graficos abiertos.
x11() # Abrimos otra ventana mas
dev.list() # Nos da la lista de dispositivos graficos abiertos.
dev.cur() # Para saber cual es el dispositivo activo
dev.set(2) # Para activar el dispositivo grafico en el que queramos
# representar las graficas.
dev.cur() # Lo comprobamos
dev.off() # Para desactivar la ventana activa.
# Ejemplo del uso de varias ventanas graficas.
x11() # Abrimos el primer dispositivo
plot(df$x, df$y) # Dibujamos en el el scatter plot de x frente a y
x11() # Abrimos el segundo dispositivo
boxplot(df$x ~ df$z) # Dibujamos en el segundo
# la grafica de cajas y bigotes de x en funcion de z
x11() # Abrimos el tercer dispositivo.
barplot(df$x) # Dibujamos el grafico de barras de x
# Supongamos que por algun motivo nos interesa cambiar
# el grafico de la ventana 2
dev.cur() # Para saber cual es el dispositivo activo
dev.set(2) # Activamos la ventana 2
boxplot(df$y ~ df$z)
##################################
### VARIOS GRAFICOS EN UNO ###
##################################
dev.off() # Desactivamos todas las ventanas graficas o dispositivos
x11() # Abrimos el primer dispositivo
matrix(c(1:4), nrow=2, byrow=FALSE)
layout(matrix(c(1:4), nrow=2, byrow=FALSE))
layout.show(4) # Muestra las cuatro particiones
Conf2x2 = matrix(c(1:4), nrow=2, byrow=FALSE)
Conf2x2
Conf3x2 = matrix(c(1:6), nrow=2, byrow=TRUE)
Conf3x2
layout(Conf3x2)
layout.show(6)
layout(Conf2x2)
layout.show(4)
# Ejemplo
x11()
layout(Conf3x2)
layout.show(6)
plot(df$x, df$y) # Scatter plot.
boxplot(df$x) # Diagrama de cajas y bigotes o boxplot.
boxplot(df$x ~ df$z) # Diagrama de cajas y bigotes o boxplot
# en funcion de una variable con dos niveles.
barplot(df$x) # Diagrama de barras
qqnorm(df$x) # Compara la distribucion de datos con los
# valores teoricos de una distribucion normal
qqline(df$x) # Añade una linea.
hist(df$x) # Histograma.
# Se pueden dividir las ventanas de muchas formas,
# segun nuestras necesidades.
x11()
Conf2mas1 = matrix(c(1:3, 3), nrow=2, byrow=F)
# Creamos un matriz a partir de un vector con los valores
#c(1:3,3) que es igual que c(1,2,3,3)
Conf2mas1
layout(Conf2mas1)
layout.show(3)
plot(df$x, df$y) # Scatter plot.
boxplot(df$x) # Diagrama de cajas y bigotes o boxplot.
boxplot(df$x ~ df$z) # Diagrama de cajas y bigotes o boxplot
# en funcion de una variable con dos niveles.
# Se pueden hacer las divisiones en particiones irregulares
x11()
Conf2mas1
layout(Conf2mas1)
layout.show(3)
layout(Conf2mas1, widths=c(1, 3), # con "widths" configuramos la anchura
heights=c(3, 1)) # con "heights" configuramos la altura
layout.show(3)
#######################################
### PERSONALIZAR GRAFICOS. Plot ###
#######################################
plot(df$x, df$y)
Conf3x2 = matrix(c(1:6), nrow=2, byrow=TRUE)
lay.1 = layout(Conf3x2)
layout.show(lay.1)
plot(df$x, df$y,
main="Nombre del grafico", # Texto del titulo
cex.main=2, # Tamaño de letra del titulo
sub="Subtitulo", # Texto del subtitulo
cex.sub=1.5) # Tamaño de letra del subtitulo
plot(df$x, df$y,
type="p", # "p": puntos (por defecto),
# "l": lineas,
# "b": puntos conectados por lineas,
# "o": igual al anterior, pero las lineas estan sobre los puntos,
# "h": lineas verticales,
# "s": escaleras, los datos se representan como la parte superior de las lineas verticales,
# "S": igual al anterior pero los datos se representan como la parte inferior de las l´ineas verticales
main="Nombre del grafico", # Texto del titulo
cex.main=2, # Tamaño de letra del titulo
sub="Tipo p (defecto)", # Texto del subtitulo
cex.sub=1.5) # Tamaño de letra del subtitulo
plot(x, y,
type="l", # "l": lineas,
main="Grafico de lineas", # Texto del titulo
cex.main=3, # Tamaño de letra del titulo
sub="Tipo l", # Texto del subtitulo
cex.sub=1.5) # Tamaño de letra del subtitulo
plot(x, y,
type="b", # "b": puntos conectados por lineas,
main="Lineas y puntos", # Texto del titulo
cex.main=2, # Tamaño de letra del titulo
sub="Tipo b", # Texto del subtitulo
cex.sub=1.5) # Tamaño de letra del subtitulo
plot(x, y,
type="o", # "o": igual al anterior, pero las lineas estan sobre los puntos,
main="Lineas sobre los puntos", # Texto del titulo
cex.main=2, # Tamaño de letra del titulo
sub="Tipo o", # Texto del subtitulo
cex.sub=1.5) # Tamaño de letra del subtitulo
plot(x, y,
type="h", # "h": lineas verticales,
main="Lineas verticales", # Texto del titulo
cex.main=2, # Tamaño de letra del titulo
sub="Tipo h", # Texto del subtitulo
cex.sub=1.5) # Tamaño de letra del subtitulo
dev.off() # Desactivamos todas las ventanas graficas o dispositivos
plot(x, y,
type="o", # "p": puntos (por defecto),
main="Nombre del grafico", # Texto del titulo
cex.main=2, # Tamaño de letra del titulo
sub="Subtitulo", # Texto del subtitulo
cex.sub=1.5, # Tamaño de letra del subtitulo
xlab="Explicacion eje X", # Texto en el eje X
ylab="Explicacion eje Y", # Texto en el eje Y
cex.lab=0.8, # Tamaño de letra de los ejes
axes=T, # Definir si se dibujan los ejes (TRUE, opcion por defecto), o no se dibujan (FALSE)
xlim=c(0, 15), # Rango de datos del eje X
ylim=c(0, 50), # Rango de datos del eje Y
pch=24, # Forma de los puntos. Mas info en help("points").
col="red", # Color del borde de los puntos
bg="seagreen2", # especifica el color del fondo. La lista de los 657 colores disponibles se
# puede ver con colors())
bty="7", # controla el tipo de caja que se dibuja alrededor del grafico:
# "o", "l", "7", ¨c", ¨u" o "]" (la caja se
# parece a su respectivo caracater);
# si bty="n" no se dibuja la caja
tcl=-0.5, # un valor que especifica la longitud de los marcadores de eje
# como una fraccion de la altura de una linea
# de texto (por defecto tcl=-0.5)
las=1, # un entero que controla la orientacion de los caracteres en los ejes (0: paralelo a los ejes, 1: horizontal, 2:
# perpendicular a los ejes, 3: vertical)
cex=1.5) # un valor que controla el tama~no del texto y simbolos con respecto al valor por defecto; los siguientes
# parametros tienen el mismo control para n´umeros en los ejes, cex.axis, t´itulos en los ejes, cex.lab,
# el titulo principal, cex.main, y el subtitulo, cex.sub
?plot # par = parametros modificables en un grafico
help("points")
colors()
#############################
### EXPORTAR GRAFICOS ###
#############################
# Especificando la ubicacion
jpeg("C:/Users/Raul Ortiz/Desktop/Grafico1.jpeg") # Direccion mas nombre.extension
plot(df$x, df$y) # Grafico
dev.off() # Cierre del archivo
# Lo habitual es que lo queramos guardar en nuestro directorio de trabajo,
# en ese caso no es necesario especificar ninguna ruta.
getwd() # Comprobamos cual es nuestro directorio de trabajo.
jpeg(filename="Grafico2.jpeg") # Nombre del archivo y extension
plot(df$x, df$y) # Grafico
dev.off() # Cierre del archivo
# Algunos argumentos para modificar el grafico.
jpeg(filename="Grafico3.jpeg", # Nombre del archivo y extension
width = 33, # Anchura
height = 19, # Altura
res= 72, # Resolucion 72ppi es un estandar
units = "cm") # Unidades.
plot(df$x, df$y) # Grafico
dev.off() # Cierre del archivo
help(jpeg) # Mas informacion al respecto
# Tambien funciona con PDF
pdf(file="Grafico4.pdf") # Nombre del archivo y extension. Ojo file=, no filename=
plot(df$x, df$y) # Grafico
dev.off() # Cierre del archivo
help(pdf) # Mas informacion al respecto
# Se puede exportar desde la pestaña PLOT
plot(df$x, df$y)
Hola, buen día.
ResponderEliminarTengo una serie de datos (shp, data.frames diferentes) y necesito ponerlos todos en un solo gráfico pero corresponden a distintos paquetes de procesamiento. Entre ellos un data.frame de trayectorias.
Si me indican como unificar todo en un solo gráfico se los agradecería.