Заполните континентальные области на географических картах, созданных с помощью R - PullRequest
2 голосов
/ 29 сентября 2011

Я пытаюсь заняться созданием географических карт, используя пакет maps в R. Я не уверен, является ли это «пакетом выбора».

Я пытался нарисовать карту мира с помощьюголубоватый фон, белые континентальные области и красные границы страны.Но кажется, что невозможно заполнить области, не рисуя границы страны черным цветом.В чем моя ошибка?

library(maps)

# Show the World map without country border,
# with black continent boundaries on a bluish background 
map("world", interior=F, boundary=T, bg="#ddeeff", col="black")

# Fill continental areas in white
map("world", col="white", interior=F, fill=TRUE, add=T)

# Add country borders in red
map("world", interior=T, boundary=F, col="red", add=T)

Использование ?map дает мне:

fill - логический флаг, который говорит, следует ли рисовать линии или заполнять области.Если FALSE, линии, ограничивающие каждую область, будут нарисованы (но только один раз, для внутренних линий).Если TRUE, каждая область будет заполнена с использованием цветов из аргумента col =, и ограничивающие линии не будут нарисованы .

Моя R-версия:

платформа x86_64-apple-darwin9.8.0
arch x86_64
os darwin9.8.0
система x86_64, darwin9.8.0
статус
мажор 2
минор 13.0
год 2011
месяц 04
день 13
svn rev 55427
язык R
version.string R версия 2.13.0 (2011-04-13)

Ответы [ 3 ]

4 голосов
/ 29 сентября 2011

Использование базовой графики:

(Существует определенное количество перелива красного поверх черных границ - я не мог найти способ полностью избавиться от этого.)

library(maps)
map("world", interior=TRUE, fill=TRUE, boundary=FALSE, col="white", bg="lightblue")
map("world", interior=TRUE, boundary=TRUE, col="red", add=TRUE)

enter image description here

Использование ggplot:

ggplot у вас есть полный контроль над всеми цветами, и нет переполнения. Но рендеринг занимает немного больше времени ...)

library(ggplot2)
library(maps)
mapWorld <- borders("world", colour="red", fill="white")
ggplot() + 
  mapWorld + 
  geom_path() + 
  opts(
    plot.background=theme_rect(fill="lightblue"),
    panel.background=theme_rect(fill="lightblue")
    )

enter image description here

2 голосов
/ 11 декабря 2015

Можно изменить цвет границ в одной команде 'map':

map("world", fill=TRUE, col="white", bg="lightblue", border="red")

Опция "border = 'red'" явно не задокументирована в «? Map», потому что на самом деле она является опцией непосредственно для «polygon ()», которая вызывается из map (). Это часть "..." в вызове map ().

1 голос
/ 16 июля 2013

Использование базовой графики:

Чтобы избежать переполнения, вы можете установить аргумент lty равным 0 при первом вызове, чтобы заполнить страны без рисования черных границ.

library(maps)   
map("world", interior=TRUE, fill=TRUE, boundary=FALSE, col="white", lty=0, bg="lightblue")
map("world", interior=TRUE, boundary=TRUE, col="red", add=TRUE)
...