मैं प्रोग्रामिंग के लिए नया हूं और वर्तमान में एक प्रारंभिक स्थानिक विश्लेषण पाठ्यक्रम में नामांकित हूं जो आर का उपयोग करता है। निम्नलिखित कोड नीचे शामिल tmaps उत्पन्न करता है। मैं प्रत्येक tmap के लिए शीर्षक को कैसे केन्द्रित कर सकता हूं और साथ ही शीर्ष दाईं ओर लेजेंड को मानचित्रों के ऊपर रखे बिना कैसे रख सकता हूं?

आपके सहयोग के लिये बहुत धन्यवाद।

  ga1 = tm_shape(a2georgia) +
  tm_polygons('PctBlack', style='quantile', breaks=c(4.98,11.75, 22.35,27.64, 32.55, 40.06,   48.18, 79.64),
              n=8, palette=c('lightblue','khaki1', 'red3'), title='Quantiles(8)',
              border.col='grey27', alpha=.9) +
  tm_layout(legend.position = c("right", "top"), title= '% of Population of Black Race', title.position = c('right', 'top'))


ga_cartogram <- cartogram_cont(a2georgia, "PctBlack", itermax=5)

  ga2 = tm_shape(ga_cartogram) + 
  tm_polygons("PctBlack", style='quantile', breaks=c(4.98,11.75, 22.35,27.64, 32.55, 40.06, 48.18, 79.64), 
              n=8, palette=c('lightblue','khaki1', 'red3'), title='Quantiles(8)',
              border.col='grey27', alpha=.9) +
  tm_layout(legend.position = c("right", "top"), title= '% of Population of Black Race',  title.position = c('right', 'top'))


tmap_arrange(ga1,ga2)

Tmaps

3
Hubmeister 27 मार्च 2020, 21:26

1 उत्तर

सबसे बढ़िया उत्तर

समस्या यह है कि {tmap} आपके बहुभुज के बाउंडिंग बॉक्स के अंदर किंवदंती और शीर्षक खींचता है। अधिक जगह बनाने के लिए आपको बाउंडिंग बॉक्स को कुछ हद तक बढ़ाना होगा।

कुछ समय पहले मैंने इस विषय पर एक ब्लॉग पोस्ट लिखा था, हो सकता है कि आप उस पर एक नज़र डालना चाहें https://www.jla-data.net/eng/adjusting-bounding-box-of-a-tmap-map/

जैसा कि आपका उदाहरण बिल्कुल प्रतिलिपि प्रस्तुत करने योग्य नहीं है, मैं उत्तरी कैरोलिना शेपफाइल पर तकनीक का प्रदर्शन करूंगा जिसे {sf} के साथ भेज दिया गया है और इस प्रकार व्यापक रूप से उपलब्ध है।

library(sf)
library(tmap)

# NC counties - a shapefile shipped with the sf package
nc <- st_read(system.file("shape/nc.shp", package ="sf"))


# bad, bad map...
tm_shape(nc) + tm_polygons("NWBIR74", style='quantile', 
                           breaks=c(4.98,11.75, 22.35,27.64, 32.55, 40.06, 48.18, 79.64),
                           n=8, palette=c('lightblue','khaki1', 'red3'), 
                           title='Quantiles(8)',
                           border.col='grey27', alpha=.9) +
  tm_layout(legend.position = c("right", "top"), 
            title= '% of Population of Black Race', 
            title.position = c('right', 'top'))

enter image description here

# make some bbox magic
bbox_new <- st_bbox(nc) # current bounding box

xrange <- bbox_new$xmax - bbox_new$xmin # range of x values
yrange <- bbox_new$ymax - bbox_new$ymin # range of y values

# bbox_new[1] <- bbox_new[1] - (0.25 * xrange) # xmin - left
 bbox_new[3] <- bbox_new[3] + (0.25 * xrange) # xmax - right
# bbox_new[2] <- bbox_new[2] - (0.25 * yrange) # ymin - bottom
bbox_new[4] <- bbox_new[4] + (0.2 * yrange) # ymax - top

bbox_new <- bbox_new %>%  # take the bounding box ...
  st_as_sfc() # ... and make it a sf polygon

# looks better, does it?
tm_shape(nc, bbox = bbox_new) + tm_polygons("NWBIR74", style='quantile', 
                           breaks=c(4.98,11.75, 22.35,27.64, 32.55, 40.06, 48.18, 79.64),
                           n=8, palette=c('lightblue','khaki1', 'red3'), 
                           title='Quantiles(8)',
                           border.col='grey27', alpha=.9) +
  tm_layout(legend.position = c("right", "top"), 
            title= '% of Population of Black Race', 
            title.position = c('right', 'top'))

enter image description here

2
Jindra Lacko 28 मार्च 2020, 09:57