[R-sig-Geo] Custom legend with tmap

Ulrike Grömping groemping at beuth-hochschule.de
Fri Oct 20 10:23:07 CEST 2017


Dear all,

I have a question on custom legends with tmap: the code below places 
small charts which have been previously stored as png files (file names 
in named character vector fns) on a map. The colors in these charts 
(stored in the vector farben) need a legend. Adding the legend with 
"tm_add_legend" works in the plot mode, but not in the view mode. The 
only way I found to get a legend in the view mode is to create a png 
with the legend included and place it on the legend with tm_markers 
(this is ignored in plot mode).

Is this indeed the only/best way, or (how) could I do this with less effort?

Best, Ulrike

#################
tm_shape(geo, is.master=TRUE) +
   tm_polygons(col = "grey", alpha=0, border.col 
="grey20",popup.vars=FALSE) +
   tm_symbols(shape="NAMEshort",
              shapes=tmap_icons(fns[sort(geo$NAMEshort)], width=96, 
height=96),
              shapes.legend=22,
              shapes.legend.fill=farben,
              shapes.labels=(10:40)/10,
              border.lwd=1,
              sizes.legend=c(.5, 1,3)*1e6,
              legend.shape.show = FALSE,
              legend.size.is.portrait = TRUE,
              id="NAMEshort",
              popup.vars = c("NAME_1"),
              icon.scale = 5, xmod="Xadj", ymod="Yadj") +
   tm_add_legend(type="fill",labels=(10:40)/10, col=farben)+
   tm_layout(main.title="Distribution of Abitur grades over time",
                title="2006 to 2015 from left to right",
                title.position = c("left","TOP"), title.size = 0.5,
                legend.outside.position = "right", legend.outside = TRUE,
             title.snap.to.legend = FALSE)+
tm_shape(legloc)+
   tm_markers(shape=tmap_icons("mosaiclegend.png",
          width=120, height=1800), size=0.1 )


-- 
##############################################
## Prof. Ulrike Groemping
## FB II
## Beuth University of Applied Sciences Berlin
##############################################
## prof.beuth-hochschule.de/groemping
## Phone: +49(0)30 4504 5127
## Fax:   +49(0)30 4504 66 5127
## Home office: +49(0)30 394 04 863
##############################################



More information about the R-sig-Geo mailing list