आर में नक्शे पर बार चार्ट्स प्लॉट करना?


14

मैं उपयोग कर रहा हूँ plotrixमें Rअमेरिका के एक राज्य स्तर नक्शा प्लॉट करने के लिए। floating.pieप्रत्येक राज्य में पाई चार्ट लगाने का एक उत्कृष्ट कार्य है।

मैं सोच रहा हूँ कि क्या plotrixप्रत्येक राज्य में बार चार्ट प्रदर्शित करने के लिए पैकेज के भीतर समान कार्य हैं ? (मैंने दस्तावेज़ों पर एक नज़र डाली और बार चार्ट के साथ काम करने वाले कार्यों को यह संभावना नहीं लगती है, लेकिन मैं सिर्फ यह सुनिश्चित करना चाहता था।) यदि संभव हो तो मैं प्लॉटरिक्स पैकेज के भीतर काम करना पसंद करता हूं, लेकिन स्वतंत्र महसूस करना चाहता हूं। अन्य पैकेज।

एक उदाहरण के रूप में, मैं इस (लेकिन अमेरिका के लिए) के समान एक मानचित्र तैयार करने में दिलचस्पी लूंगा:

यहाँ छवि विवरण दर्ज करें

मेरे अमेरिकी मानचित्र के लिए, 50 बार चार्ट होंगे, प्रत्येक राज्य के लिए।

मुझे यह मानचित्र /programming/20465070/barplots-on-a-map से मिला है , लेकिन ऐसा लगता है कि ggsubplot R के मेरे संस्करण पर काम नहीं करता है (इसी तरह दूसरों के पोस्ट पर क्या कहता रहा है )।


2
मुझे यह भी पता था कि इसे ggsubplotपैकेज के साथ कैसे किया जाता है , लेकिन अब इसे हटा दिया गया है और यह काम नहीं करेगा (जैसा कि आपने उल्लेख किया है)। शायद यह पोस्ट एक प्रारंभिक बिंदु हो सकता है: stackoverflow.com/questions/36063043/…
आंद्रे सिल्वा

प्लॉट्रिक्स पर दस्तावेज़ीकरण से परामर्श करें, यह देखने के लिए कि क्या ऐसे कार्य मौजूद हैं। फिर प्लॉट्रिक्स के निर्माता से परामर्श करें।
मोक्स

जवाबों:


1

मुझे पता है कि मैं वास्तव में इस के साथ देर हो चुकी हूं, लेकिन मुझे लगता है कि मुझे एक सरल समाधान मिल गया है।

यदि आपके पास floating.pie()(जैसे कॉल करके getAnywhere(floating.pie)) के स्रोत कोड की एक नज़र है , तो आप देखेंगे कि यह एक बहुत ही सरल अभी तक प्रभावी दृष्टिकोण का उपयोग करता है: पाई खंडों को बहुभुज के रूप में चित्रित करना। यदि आप अपने बार चार्ट से चाहते हैं कि सभी बार (कोई लेबल, कुल्हाड़ी, आदि) नहीं हैं, तो आप उसी दृष्टिकोण का अनुसरण कर सकते हैं और अपना कार्य लिख सकते हैं। यहाँ एक त्वरित और गंदा संस्करण है:

# the function 
mapbars <- function (x, xllc = 0, yllc = 0, barwidth=1, maxheight=10){
  # calculate how long each bar needs to be
  bars <- (x/max(x)) * maxheight
  # get some quick colors
  col <- rainbow(length(x))

  for(i in 1:length(x)){
    # figure out x- and y coordinates for the corners
    leftx   <- xllc + ((i-1) * barwidth)
    rightx  <- leftx + barwidth
    bottomy <- yllc
    topy    <- yllc + bars[i]
    # draw the bar
    polygon(x=c(leftx, rightx, rightx, leftx, leftx),
            y=c(bottomy, bottomy, topy, topy, bottomy),
            col=col[i])
  }
}
  • x मूल्यों को सलाखों द्वारा दर्शाया जाना है
  • xllcऔर yllcजो भी समन्वय प्रणाली आप उपयोग कर रहे हैं, उसमें बाईं पट्टी के निचले बाएं कोने की स्थिति निर्दिष्ट करें
  • barwidthऔर maxheightसलाखों के आकार को स्केल करने के लिए उपयोग किया जाता है

यहां एक मूल- spआधारित साजिश के साथ एक डेमो है । मुझे नहीं लगता कि मैंने पहले काम किया है plotrix, लेकिन कैसे floating.pieकाम करता है, इसके आधार पर , मैं यह मानूंगा कि इसके साथ भी काम करना चाहिए plotrix

library(sp)
library(maptools) # just for easy access to a background map
# load some country borders as a background
data("wrld_simpl")
plot(wrld_simpl)

# zoom on a bit …
mexico <- subset(wrld_simpl, NAME=="Mexico")
plot(mexico, axes=TRUE)

# data for the bars
x1 <- c(4, 7, 1, 2)

# plot
plot(mexico, axes=TRUE)
mapbars(x=x1, xllc=-110, yllc=20, barwidth=.5, maxheight=5)
legend(x="topright", pch=22, col="black", pt.bg=rainbow(x1), legend=c("foo", "bar", "baz", "foobar"))

# add another one:
x2 <- c(9, 21, 64, 45, 33, 43, 12, 7)
mapbars(x=x2, xllc=-100, yllc=25, barwidth=.2, maxheight=2)

परिणाम इस तरह दिखता है: उदाहरण के कोड से ऊपर के परिणामस्वरूप नक्शा


मुझे यह त्रुटि तब मिलती है जब मैं मैपबार लाइन> मैपबार्स (x = X1, xllc = -110, yllc = 40, barwidth = .5, मैक्सहाइट = 5) चलाता हूं, मैपबार में त्रुटि (x = X1, xllc = -110, yllc =) 40, बारबेक्यूशन = 0.5, मैक्सहाइट = 5): फंक्शन "मैपबार्स" नहीं मिल सका
324

ऐसा लगता है कि आपने मेरे उत्तर के पहले भाग में कोड नहीं चलाया है। फ़ंक्शन mapbarsकोड के पहले बड़े ब्लॉक में परिभाषित किया गया है, जहां कहते हैं mapbars <- function (x, xllc = 0, ...। आपको नए कमांड को आर "सिखाने" के लिए पहले उस पूरे कोड को निष्पादित करना होगा।
मेरा टॉवल

-1

ggplot2 और ggvis दो पुस्तकालय हैं जो आपको मानचित्र पर भूखंडों को प्रदर्शित करने में मदद कर सकते हैं। Ggplot2 में आप नक्शे पर बुलबुले को प्लॉट कर सकते हैं और फिर आपको बस एन्स () निर्देशांक देने की ज़रूरत है जिनका बुलबुले के आकार और रंग से कोई लेना-देना नहीं है। बार चार्ट के बारे में, आपको कम से कम 2 जोड़े x और y असाइन करने की आवश्यकता है, एक बार चार्ट स्थान के लिए और दूसरा बार चार्ट की ऊंचाई और चौड़ाई के लिए। दूसरे शब्दों में, आपको एक बार के लिए 4 कोनों के निर्देशांक को जानना होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.