আর তে কোরোলিথ: কাস্টম ব্রেক এবং প্লট করা


13

চোরোলেথ মানচিত্রের চক্রান্ত করার বিষয়ে আমার একটি প্রশ্ন রয়েছে। কাস্টম ব্রেক সহ মানচিত্রের প্লট করার ক্ষেত্রে কী সুপারিশ করা হয়? এবং এটি কিছুটা আকর্ষণীয় দেখায়।

আমার স্ক্রিপ্টে আমি প্লট এবং এসপ্লট কমান্ডটি কিছু ডেটা ভিজ্যুয়ালাইজ করার জন্য ব্যবহার করেছি তবে ফলাফলের সাথে আমি পুরোপুরি খুশি নই। এটা যে কারণে দেখতে সহজ. এসপিপ্লট ব্যবহার করে আমি একটি রঙের র‌্যাম্প পাই যা বিভিন্ন মানগুলির জন্য রঙগুলি পুনরাবৃত্তি করে যা কিছুটা অদ্ভুত। কাস্টম ব্রেকগুলির সাথে প্লট ব্যবহার করে আমি মানগুলির জন্য আরও ভাল বিরতি তৈরি করতে পারিনি, যেমন মানচিত্রে শূন্য-মানগুলি সাদা। কিংবদন্তি এবং মানচিত্রের মধ্যে বিভক্ত অনুপাতগুলি সম্ভবত আমি মনে করি রাস্তুডিওর ফলাফল।

তাই আমি ভাবলাম যে কাস্টম ব্রেক ব্যবহার করে আর-তে কোরোপলথ ম্যাপের প্লট করার জন্য কারও কাছে আরও ভাল পরামর্শ আছে কিনা?

20-02-2013 সম্পাদনা করুন

প্রস্তাবিত হিসাবে আমি choropleth মানচিত্র তৈরি করার জন্য ggplot2 ব্যবহার করেছি। আমি নীচের কোড ব্যবহার করেছি। আমি দুটি সমস্যার মুখোমুখি হয়েছি। একটি হ'ল ডেটা মজবুত করার পরে শেফফাইল থেকে সমস্ত ডেটা ডেটা ফ্রেমে স্থানান্তরিত হয় না। সুতরাং আমাকে "আইডি" ভেরিয়েবলটির নতুন নামকরণ করতে হবে যাতে আমি ডেটাটি মার্জ করতে পারি। গৌণ বিষয়।

আরও বড় সমস্যা হ'ল ডেটা ফ্রেমের ডেটা সঠিক হওয়া সত্ত্বেও, জিজিপ্লট এমন মানচিত্র দেখায় যেখানে ডেটা ভুল rect কিংবদন্তি অনুসারে রঙের মানটি ডেটাতে ভেরিয়েবলের মানের সাথে মিলে না। আমি কি এখানে কিছু উপেক্ষা করছি?

# Plotting polygon shapefiles (try-out)
# Load the packages
require(rgdal)
require(maptools)
require(ggplot2)
gpclibPermit() # required for the fortify method
# Load the shapefile
africa=readOGR("/home/GIS",layer="africaII")
names(africa) 
# Load the data on conflict
conflict<-read.csv("africa_conflict.csv", header=TRUE)
names(conflict)
# Merge the data together
africadat<-merge(africa, conflict, by="ISO3")
# Changing the data in the shapefile
africa@data <- africadat
# Fortify so that ggplot can plot
africa.points = fortify(africa,region="ISO3")
# Change "id" to "ISO3"such that the datasets can be merged again
names(africa.points)[names(africa.points)=="id"]<-"ISO3"
africa.df=merge(africa.points,africadat,by="ISO3")
# Plot the data
ggplot(africa.df) + 
aes(long,lat,group=group) + 
geom_polygon(aes(fill =onset))+
geom_path(color="white") +
coord_equal()

প্রতিলিপি ডেটা লিঙ্ক

13-11-2015 আপডেট করুন: ফাইলটি আকার দেওয়ার জন্য স্থির লিঙ্ক । চোরোপ্লেথ কীভাবে প্লট করা যায় তার সমাধানের জন্য নীচের উত্তর দেখুন।


5
আমি ggplot2চোরোলেথ মানচিত্রের জন্যও ব্যবহার করব, যা আমি মনে করি ডিফল্টরূপে আরও ভাল দেখাচ্ছে আউটপুট।
স্লোলিয়ারার

হ্যাঁ আমি ggplot2 ব্যবহার সম্পর্কে নিশ্চিত নই যেহেতু আমার শেপফাইলে দীর্ঘ / লাতৃত তথ্য কেবল একটি পয়েন্ট নির্দিষ্ট করে এবং জাতীয় সীমানার বাহ্যরেখা নয়। সুতরাং আমি একটি চোরোলেথ মানচিত্র তৈরি করতে এই প্লটগুলি ব্যবহার করেছি। আমি আরআইএস-এর জিআইএস তথ্য পরিচালনার সাথে খুব পরিচিত নই তাই নিশ্চিত নই যে আমি এর জন্য কিছু সত্যিকারের সরল সমাধান উপেক্ষা করছি কিনা।
ঘোড়াঘটিয়ার

দয়া করে আকারটি ফাইলের লিঙ্কটি ঠিক করুন।
pufferfish

অবশ্যই, কোনো সমস্যা নেই.
ঘোড়াঘড়ি

উত্তর:


6

উপরের কোডটি নিয়ে onsetI টি স্পষ্ট স্তর রয়েছে তা বাদে আমি কোনও সমস্যা দেখছি না , তাই আমি এগুলি একটি ধ্রুবক পরিবর্তনশীল না হয়ে কারণ হিসাবে বিবেচনা করব। factorনীচের কোডটিতে কলটি নোট করুন ।

ggplot(africa.df) +
  aes(long,lat,group=group) +
  geom_polygon(aes(fill = factor(onset)))+
  geom_path(color="white") +
  coord_equal()

এই কোডটি নিম্নলিখিত ফলাফল দেয়:

মূল

আপনি যদি কাস্টম রঙ চান তবে আপনি এটি ব্যবহার করতে পারেন:

library(RColorBrewer)
my.cols <- brewer.pal(6, "Blues")

ggplot(africa.df) +
  aes(long,lat,group=group) +
  geom_polygon(aes(fill = factor(onset)))+
  scale_fill_manual("Onset\n", values = my.cols, guide = "legend") +
  geom_path(color="white") +
  coord_equal()

যা এটি উত্পাদন করে:

কাস্টম রঙ


এটি এখনও ভুল মানগুলি প্লট করে। খুব অদ্ভুত।
ঘোড়াঘটিয়ার

ঠিক আছে, উদাহরণ সহ সমস্যাটি কী তা নির্দিষ্ট করে বলতে পারেন? অ্যাঙ্গোলা কলামের 3জন্য একটি বরাদ্দ করা হয়েছে onsetএবং চার্টটিতে একটি প্লট 3করে। কাজ করে বলে মনে হচ্ছে। সম্ভবত আমি কিছু মিস করছি?
স্লোলিয়ারার

ওঁ হ্যাঁ দুঃখিত। অ্যাঙ্গোলা হ'ল কয়েকটি যে সঠিক correct উদাহরণস্বরূপ আপনি যদি দক্ষিণ আফ্রিকা, নামিবিয়া বা সেনেগালের দিকে তাকান তবে আপনি দেখতে পাবেন যে রঙের দ্বারা বর্ণিত মানটি ডেটা মানের সাথে মিলে না। সুতরাং সেনেগালের একটি 6 (এখন একটি 2), দক্ষিণ আফ্রিকা 0 (4) এবং নামিবিয়াও 0 (1) হওয়া উচিত। বুরুন্ডি এবং রুয়ান্ডার আরও কয়েকজনের নাম প্রকাশ করা বন্ধ। ইন লিংক একটি চক্রান্ত আমি spplot কোনটি সঠিক মান সহ একটি মানচিত্র দেখায় দিয়ে তৈরি। এই প্লটটি সরাসরি শেফফাইল থেকে করা হয়। সুতরাং আমি অনুমান করি যে ডেটাফ্রেম তৈরির সাথে কিছু ভুল হয়েছে।
ঘোড়াঘড়ি বছর

5

ClassInt প্যাকেজটিতে সংখ্যার ডেটা গণনার বিরতিগুলির জন্য বেশ কয়েকটি ফাংশন রয়েছে - এটি ইনস্টল করুন এবং দস্তাবেজগুলি পড়ুন।


হ্যাঁ, আমি স্থির বিরতি (স্ক্রিপ্টে দেখানো হয়নি) সহ ClassInt প্যাকেজটি ব্যবহার করেছি তবে এর সাথে সমস্যাটি হ'ল এটি ক্রমাগত সংখ্যাসূচক ডেটার জন্য অন্তরগুলি গণনা করে। যদিও আমার অন্তরগুলি বিচ্ছিন্ন, তারা ইভেন্টগুলির একটি ফ্রিকোয়েন্সি উপস্থাপন করে। কীভাবে এটির উন্নতি করা যায় তা এখনও খুঁজে পাইনি।
ঘোড়াঘটিয়ার

1

সংরক্ষণাগারগুলির জন্য, আমি যে সমাধানটি ব্যবহার করেছি:

#### Choropleth in R example ####

## Libraries
library(classInt)    
library(lattice)
library(RColorBrewer)    
library(sp)

## Shapefile for Sub-Sahara Africa (see link in Q)
africa<-readShapeSpatial("shp/africa.shp") 

## Add data to shapefile
# In this case the number of conflict onsets between 1981-2010
africa$onset<-c(3,0,3,1,3,1,4,2,3,0,
                2,0,3,1,1,0,2,1,1,1,
                2,0,3,0,1,0,0,4,2,1,
                3,0,1,0,6,1,3,1,1,0,
                0,1,1,0,0,0,0)

## Plot 
par(mar=c(1,4,1,1),family="serif")
trellis.par.set(axis.line=list(col=NA)) # Remove borders
spplot(africa,zcol="onset",col.regions=colorRampPalette(c("white","grey10"))(20),
main=list(label="Number of civil conflict onsets 1981-2010",cex=3),
pretty=T,par.settings=list(axis.text=list(cex=3)))

এখানে চিত্র বর্ণনা লিখুন


আর এর জন্য একটি প্যাকেজ রয়েছে যা দরকারী ম্যাপিং কার্যকারিতা সরবরাহ করে। একে কার্টোগ্রাফি বলা হয় (এবং উল্লেখযোগ্যভাবে ডকুমেন্টেশন অনুসারে কোরোপলথ মানচিত্রের অনুমতি দেয় )। আফসোস যদি এটি অফ টপিক হয় (যেমন আপনি ইতিমধ্যে আপনার উত্তর খুঁজে পেয়েছেন) তবে আসুন আমরা এটি ভবিষ্যতের রেফারেন্সের জন্য বলি ..!
এমজিসি

দেখতে বেশ সুন্দর লাগছে। আমি অবশ্যই এটি অন্য কাজের জন্য চেষ্টা করব, সুতরাং রেফারেন্সের জন্য ধন্যবাদ।
ঘোড়াফিয়ার ইয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.