Hola, no me funciona: Te contesto lo mismo que le contesté a otro compañero de la lista, espero ser más claro. Les comparto la carpeta con la capa y los datos que estoy usando. https://www.dropbox.com/s/umy0evt3qm1wr4d/dissolve.zip Esto es lo que estoy haciendo: library(rgdal) library(maptools) library(sp) library(classInt) library(RColorBrewer) zm <- readOGR(?.?, ?zmdis?) data <- read.csv(?part_pot.csv?, header=T, sep=?,?, dec=?.?) zm en data=data.frame(data) plotvar88 <- zm$part88 nclr <- 8 plotclr <- brewer.pal(nclr, ?Blues?) class <- classIntervals(plotvar88, nclr, style=?quantile?) colcode <- findColours(class, plotclr) plot(zm) plot(zm, col=colcode, add=T) legend(3777189,2249615, legend=names(attar(colcode, ?table?)), fill=attr(colcode, ?palette?), cex=0.6, bty=?n?) Entonces obtengo el mapa como lo quiero (Me falta la división política, pero para este ejemplo la omití): https://www.dropbox.com/s/w3ps61o4jr1ciy5/part88.tiff Cuando lo hago con spplot: spplot(zm, "part88", col.regions=plotclr, cuts=nclr, key.space="bottom?) Me regresa lo siguiente: https://www.dropbox.com/s/2cgiua5ra2tx4a0/part88_spplot.tiff Entonces lo que quiero es usar el spplot para pintar dos variables c(?part88?, ?part93?), que el mismo ?legend? aplique para ambas. Saludos cordiales El 05/05/2014, a las 10:39, Olivier Nuñez <onunez en unex.es> escribió:> No resulta fácil contestarte con la información que proporcionas. > Sobre la base de las variables que definiste, intuyó que lo siguiente debería > funcionar: > > zm$clases <- class > spplot(zm, "clases" , col.regions=plotclr) > > Un saludo. Olivier > >> Hola, >> >> Intento representar en un mapa participaciones porcentuales de los sectores >> económicos y no logro hacerlo con spplot. >> >> He intentado con spplot(zm, c(?part88?, ?part93?), cuts=4, col.regions=brewer.pal(4, >> ?Set3?)) >> >> Lo pude hacer utilizando el base graphics de R, definiendo: >> >>> plotvar88 <- zm$part88 >>> nclr <- 8 >>> plotclr <- brewer.pal(nclr, "PuOr") >>> plotclr <- plotclr[nclr:1] >>> class <- classIntervals(plotvar88, nclr, style="quantile") >>> colcode <- findColours(class, plotclr) >>> plot(zm) >>> plot(zm, col=colcode, add=T) >>> legend(3377189,2249615, legend=names(attr(colcode, "table")), fill=attr(colcode, >>> "palette"), cex=0.6, bty="n?) >> >> Después intenté meter algunos de esos argumentos utilizando spplot >> >> spplot(zm, c(?part88?, ?part93?), col.regions=plotclr, cuts=nclr) >> >> y tampoco funcionó. >> >> Tengo algunas nociones de cómo hacerlo en spplot, pero no sé cómo, pues desconozco >> la forma en utilizar los argumentos por ejemplo usando ?cuts?, ?at?. He revisado la >> ayuda que provee el paquete y sigo sin poder concretarlo. >> >> Agradecería un poco de orientación. >> >> Saludos cordiales. >> >> Rolando Valdez >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > -- > ____________________________________ > > > Olivier G. Nuñez > Email: onunez en unex.es > http://kolmogorov.unex.es/~onunez > Tel : +34 663 03 69 09 > Departamento de Matemáticas > Universidad de Extremadura > > > ____________________________________ > > >Rolando Valdez
El segundo argumento en spplot ha de definir el número/nombre del intervalo al
que
pertenece el area a pintar.
Este código debería funcionar:
zm$class88=findCols(classIntervals(zm$part88, nclr, style="quantile"))
zm$class93=findCols(classIntervals(zm$part93, nclr, style="quantile"))
spplot(zm, c("class88","class93"), col.regions=plotclr,
cuts=(nclr-1),
key.space="bottom")
Un saludo. Olivier
> Hola, no me funciona:
>
> Te contesto lo mismo que le contesté a otro compañero de la lista, espero
ser más
> claro.
>
> Les comparto la carpeta con la capa y los datos que estoy usando.
>
> https://www.dropbox.com/s/umy0evt3qm1wr4d/dissolve.zip
>
> Esto es lo que estoy haciendo:
>
> library(rgdal)
> library(maptools)
> library(sp)
> library(classInt)
> library(RColorBrewer)
> zm <- readOGR(“.”, “zmdis”)
> data <- read.csv(“part_pot.csv”, header=T, sep=“,”, dec=“.”)
> zm en data=data.frame(data)
> plotvar88 <- zm$part88
> nclr <- 8
> plotclr <- brewer.pal(nclr, “Blues”)
> class <- classIntervals(plotvar88, nclr, style=“quantile”)
> colcode <- findColours(class, plotclr)
> plot(zm)
> plot(zm, col=colcode, add=T)
> legend(3777189,2249615, legend=names(attar(colcode, “table”)),
fill=attr(colcode,
> “palette”), cex=0.6, bty=“n”)
>
> Entonces obtengo el mapa como lo quiero (Me falta la división política,
pero para
> este ejemplo la omití):
>
> https://www.dropbox.com/s/w3ps61o4jr1ciy5/part88.tiff
>
> Cuando lo hago con spplot:
>
> spplot(zm, "part88", col.regions=plotclr, cuts=nclr,
key.space="bottom”)
>
> Me regresa lo siguiente:
>
> https://www.dropbox.com/s/2cgiua5ra2tx4a0/part88_spplot.tiff
>
> Entonces lo que quiero es usar el spplot para pintar dos variables
c(“part88”,
> “part93”), que el mismo ‘legend’ aplique para ambas.
>
> Saludos cordiales
> El 05/05/2014, a las 10:39, Olivier Nuñez <onunez en unex.es>
escribió:
>
>> No resulta fácil contestarte con la información que proporcionas.
>> Sobre la base de las variables que definiste, intuyó que lo siguiente
debería
>> funcionar:
>>
>> zm$clases <- class
>> spplot(zm, "clases" , col.regions=plotclr)
>>
>> Un saludo. Olivier
>>
>>> Hola,
>>>
>>> Intento representar en un mapa participaciones porcentuales de los
sectores
>>> económicos y no logro hacerlo con spplot.
>>>
>>> He intentado con spplot(zm, c(“part88”, “part93”), cuts=4,
>>> col.regions=brewer.pal(4,
>>> “Set3”))
>>>
>>> Lo pude hacer utilizando el base graphics de R, definiendo:
>>>
>>>> plotvar88 <- zm$part88
>>>> nclr <- 8
>>>> plotclr <- brewer.pal(nclr, "PuOr")
>>>> plotclr <- plotclr[nclr:1]
>>>> class <- classIntervals(plotvar88, nclr,
style="quantile")
>>>> colcode <- findColours(class, plotclr)
>>>> plot(zm)
>>>> plot(zm, col=colcode, add=T)
>>>> legend(3377189,2249615, legend=names(attr(colcode,
"table")), fill=attr(colcode,
>>>> "palette"), cex=0.6, bty="n”)
>>>
>>> Después intenté meter algunos de esos argumentos utilizando spplot
>>>
>>> spplot(zm, c(“part88”, “part93”), col.regions=plotclr, cuts=nclr)
>>>
>>> y tampoco funcionó.
>>>
>>> Tengo algunas nociones de cómo hacerlo en spplot, pero no sé cómo,
pues
>>> desconozco
>>> la forma en utilizar los argumentos por ejemplo usando “cuts”,
“at”. He revisado
>>> la
>>> ayuda que provee el paquete y sigo sin poder concretarlo.
>>>
>>> Agradecería un poco de orientación.
>>>
>>> Saludos cordiales.
>>>
>>> Rolando Valdez
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es en r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>
>>
>> --
>> ____________________________________
>>
>>
>> Olivier G. Nuñez
>> Email: onunez en unex.es
>> http://kolmogorov.unex.es/~onunez
>> Tel : +34 663 03 69 09
>> Departamento de Matemáticas
>> Universidad de Extremadura
>>
>>
>> ____________________________________
>>
>>
>>
>
> Rolando Valdez
>
>
>
>
--
____________________________________
Olivier G. Nuñez
Email: onunez en unex.es
http://kolmogorov.unex.es/~onunez
Tel : +34 663 03 69 09
Departamento de Matemáticas
Universidad de Extremadura
Hola,
El problema con la propuesta de Olivier es que los intervalos son
diferentes para cada variable.
La forma sencilla y rápida es:
spplot(zm["part88"], col.regions=plotclr, at=class$brks)
Pero para que quede más elegante hay que dar algunos pasos más:
## Intervalos en forma character
op <- options(digits=4)
tab <- print(class)
options(op)
intChar <- names(tab)
## Indice de correspondencia entre elemento e intervalo
idxP88 <- findCols(class)
## Es sólo un wrapper alrededor de findIntervals. Lo anterior para
otra variable es:
idxP93 <- findInterval(zm$part93, class$brks, all.inside = TRUE)
## Nueva variable categórica
zm$classP88 <- factor(intChar[idxP88])
zm$classP93 <- factor(intChar[idxP93])
## A pintar
spplot(zm[c("classP88", "classP93")], col.regions=plotclr)
Saludos.
Oscar.
-----------------------------------------------------------------
Oscar Perpiñán Lamigueiro
Dpto. Ingeniería Eléctrica (ETSIDI-UPM)
Grupo de Sistemas Fotovoltaicos (IES-UPM)
URL: http://oscarperpinan.github.io
Twitter: @oscarperpinan
El día 6 de mayo de 2014, 9:21, "Olivier Nuñez" <onunez en
unex.es> escribió:> El segundo argumento en spplot ha de definir el número/nombre del intervalo
al que
> pertenece el area a pintar.
> Este código debería funcionar:
>
> zm$class88=findCols(classIntervals(zm$part88, nclr,
style="quantile"))
> zm$class93=findCols(classIntervals(zm$part93, nclr,
style="quantile"))
>
> spplot(zm, c("class88","class93"), col.regions=plotclr,
cuts=(nclr-1),
> key.space="bottom")
>
> Un saludo. Olivier
>
>> Hola, no me funciona:
>>
>> Te contesto lo mismo que le contesté a otro compañero de la lista,
espero ser más
>> claro.
>>
>> Les comparto la carpeta con la capa y los datos que estoy usando.
>>
>> https://www.dropbox.com/s/umy0evt3qm1wr4d/dissolve.zip
>>
>> Esto es lo que estoy haciendo:
>>
>> library(rgdal)
>> library(maptools)
>> library(sp)
>> library(classInt)
>> library(RColorBrewer)
>> zm <- readOGR(?.?, ?zmdis?)
>> data <- read.csv(?part_pot.csv?, header=T, sep=?,?, dec=?.?)
>> zm en data=data.frame(data)
>> plotvar88 <- zm$part88
>> nclr <- 8
>> plotclr <- brewer.pal(nclr, ?Blues?)
>> class <- classIntervals(plotvar88, nclr, style=?quantile?)
>> colcode <- findColours(class, plotclr)
>> plot(zm)
>> plot(zm, col=colcode, add=T)
>> legend(3777189,2249615, legend=names(attar(colcode, ?table?)),
fill=attr(colcode,
>> ?palette?), cex=0.6, bty=?n?)
>>
>> Entonces obtengo el mapa como lo quiero (Me falta la división política,
pero para
>> este ejemplo la omití):
>>
>> https://www.dropbox.com/s/w3ps61o4jr1ciy5/part88.tiff
>>
>> Cuando lo hago con spplot:
>>
>> spplot(zm, "part88", col.regions=plotclr, cuts=nclr,
key.space="bottom?)
>>
>> Me regresa lo siguiente:
>>
>> https://www.dropbox.com/s/2cgiua5ra2tx4a0/part88_spplot.tiff
>>
>> Entonces lo que quiero es usar el spplot para pintar dos variables
c(?part88?,
>> ?part93?), que el mismo ?legend? aplique para ambas.
>>
>> Saludos cordiales
>> El 05/05/2014, a las 10:39, Olivier Nuñez <onunez en unex.es>
escribió:
>>
>>> No resulta fácil contestarte con la información que proporcionas.
>>> Sobre la base de las variables que definiste, intuyó que lo
siguiente debería
>>> funcionar:
>>>
>>> zm$clases <- class
>>> spplot(zm, "clases" , col.regions=plotclr)
>>>
>>> Un saludo. Olivier
>>>
>>>> Hola,
>>>>
>>>> Intento representar en un mapa participaciones porcentuales de
los sectores
>>>> económicos y no logro hacerlo con spplot.
>>>>
>>>> He intentado con spplot(zm, c(?part88?, ?part93?), cuts=4,
>>>> col.regions=brewer.pal(4,
>>>> ?Set3?))
>>>>
>>>> Lo pude hacer utilizando el base graphics de R, definiendo:
>>>>
>>>>> plotvar88 <- zm$part88
>>>>> nclr <- 8
>>>>> plotclr <- brewer.pal(nclr, "PuOr")
>>>>> plotclr <- plotclr[nclr:1]
>>>>> class <- classIntervals(plotvar88, nclr,
style="quantile")
>>>>> colcode <- findColours(class, plotclr)
>>>>> plot(zm)
>>>>> plot(zm, col=colcode, add=T)
>>>>> legend(3377189,2249615, legend=names(attr(colcode,
"table")), fill=attr(colcode,
>>>>> "palette"), cex=0.6, bty="n?)
>>>>
>>>> Después intenté meter algunos de esos argumentos utilizando
spplot
>>>>
>>>> spplot(zm, c(?part88?, ?part93?), col.regions=plotclr,
cuts=nclr)
>>>>
>>>> y tampoco funcionó.
>>>>
>>>> Tengo algunas nociones de cómo hacerlo en spplot, pero no sé
cómo, pues
>>>> desconozco
>>>> la forma en utilizar los argumentos por ejemplo usando ?cuts?,
?at?. He revisado
>>>> la
>>>> ayuda que provee el paquete y sigo sin poder concretarlo.
>>>>
>>>> Agradecería un poco de orientación.
>>>>
>>>> Saludos cordiales.
>>>>
>>>> Rolando Valdez
>>>>
>>>> _______________________________________________
>>>> R-help-es mailing list
>>>> R-help-es en r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>>
>>>
>>>
>>> --
>>> ____________________________________
>>>
>>>
>>> Olivier G. Nuñez
>>> Email: onunez en unex.es
>>> http://kolmogorov.unex.es/~onunez
>>> Tel : +34 663 03 69 09
>>> Departamento de Matemáticas
>>> Universidad de Extremadura
>>>
>>>
>>> ____________________________________
>>>
>>>
>>>
>>
>> Rolando Valdez
>>
>>
>>
>>
>
>
> --
> ____________________________________
>
>
> Olivier G. Nuñez
> Email: onunez en unex.es
> http://kolmogorov.unex.es/~onunez
> Tel : +34 663 03 69 09
> Departamento de Matemáticas
> Universidad de Extremadura
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
Hola, Lo hice de la forma en que propones y no me sale, no sé si algo esté mal con R, porque no me respeta ni el ?key.space?, me lo sigue poniendo en la parte izquierda del gráfico Saludos El 06/05/2014, a las 02:21, Olivier Nuñez <onunez en unex.es> escribió:> El segundo argumento en spplot ha de definir el número/nombre del intervalo al que > pertenece el area a pintar. > Este código debería funcionar: > > zm$class88=findCols(classIntervals(zm$part88, nclr, style="quantile")) > zm$class93=findCols(classIntervals(zm$part93, nclr, style="quantile")) > > spplot(zm, c("class88","class93"), col.regions=plotclr, cuts=(nclr-1), > key.space="bottom") > > Un saludo. Olivier > >> Hola, no me funciona: >> >> Te contesto lo mismo que le contesté a otro compañero de la lista, espero ser más >> claro. >> >> Les comparto la carpeta con la capa y los datos que estoy usando. >> >> https://www.dropbox.com/s/umy0evt3qm1wr4d/dissolve.zip >> >> Esto es lo que estoy haciendo: >> >> library(rgdal) >> library(maptools) >> library(sp) >> library(classInt) >> library(RColorBrewer) >> zm <- readOGR(?.?, ?zmdis?) >> data <- read.csv(?part_pot.csv?, header=T, sep=?,?, dec=?.?) >> zm en data=data.frame(data) >> plotvar88 <- zm$part88 >> nclr <- 8 >> plotclr <- brewer.pal(nclr, ?Blues?) >> class <- classIntervals(plotvar88, nclr, style=?quantile?) >> colcode <- findColours(class, plotclr) >> plot(zm) >> plot(zm, col=colcode, add=T) >> legend(3777189,2249615, legend=names(attar(colcode, ?table?)), fill=attr(colcode, >> ?palette?), cex=0.6, bty=?n?) >> >> Entonces obtengo el mapa como lo quiero (Me falta la división política, pero para >> este ejemplo la omití): >> >> https://www.dropbox.com/s/w3ps61o4jr1ciy5/part88.tiff >> >> Cuando lo hago con spplot: >> >> spplot(zm, "part88", col.regions=plotclr, cuts=nclr, key.space="bottom?) >> >> Me regresa lo siguiente: >> >> https://www.dropbox.com/s/2cgiua5ra2tx4a0/part88_spplot.tiff >> >> Entonces lo que quiero es usar el spplot para pintar dos variables c(?part88?, >> ?part93?), que el mismo ?legend? aplique para ambas. >> >> Saludos cordiales >> El 05/05/2014, a las 10:39, Olivier Nuñez <onunez en unex.es> escribió: >> >>> No resulta fácil contestarte con la información que proporcionas. >>> Sobre la base de las variables que definiste, intuyó que lo siguiente debería >>> funcionar: >>> >>> zm$clases <- class >>> spplot(zm, "clases" , col.regions=plotclr) >>> >>> Un saludo. Olivier >>> >>>> Hola, >>>> >>>> Intento representar en un mapa participaciones porcentuales de los sectores >>>> económicos y no logro hacerlo con spplot. >>>> >>>> He intentado con spplot(zm, c(?part88?, ?part93?), cuts=4, >>>> col.regions=brewer.pal(4, >>>> ?Set3?)) >>>> >>>> Lo pude hacer utilizando el base graphics de R, definiendo: >>>> >>>>> plotvar88 <- zm$part88 >>>>> nclr <- 8 >>>>> plotclr <- brewer.pal(nclr, "PuOr") >>>>> plotclr <- plotclr[nclr:1] >>>>> class <- classIntervals(plotvar88, nclr, style="quantile") >>>>> colcode <- findColours(class, plotclr) >>>>> plot(zm) >>>>> plot(zm, col=colcode, add=T) >>>>> legend(3377189,2249615, legend=names(attr(colcode, "table")), fill=attr(colcode, >>>>> "palette"), cex=0.6, bty="n?) >>>> >>>> Después intenté meter algunos de esos argumentos utilizando spplot >>>> >>>> spplot(zm, c(?part88?, ?part93?), col.regions=plotclr, cuts=nclr) >>>> >>>> y tampoco funcionó. >>>> >>>> Tengo algunas nociones de cómo hacerlo en spplot, pero no sé cómo, pues >>>> desconozco >>>> la forma en utilizar los argumentos por ejemplo usando ?cuts?, ?at?. He revisado >>>> la >>>> ayuda que provee el paquete y sigo sin poder concretarlo. >>>> >>>> Agradecería un poco de orientación. >>>> >>>> Saludos cordiales. >>>> >>>> Rolando Valdez >>>> >>>> _______________________________________________ >>>> R-help-es mailing list >>>> R-help-es en r-project.org >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>>> >>> >>> >>> -- >>> ____________________________________ >>> >>> >>> Olivier G. Nuñez >>> Email: onunez en unex.es >>> http://kolmogorov.unex.es/~onunez >>> Tel : +34 663 03 69 09 >>> Departamento de Matemáticas >>> Universidad de Extremadura >>> >>> >>> ____________________________________ >>> >>> >>> >> >> Rolando Valdez >> >> >> >> > > > -- > ____________________________________ > > > Olivier G. Nuñez > Email: onunez en unex.es > http://kolmogorov.unex.es/~onunez > Tel : +34 663 03 69 09 > Departamento de Matemáticas > Universidad de Extremadura > > > ____________________________________ > > >Rolando Valdez