У мене є база даних, що містить мови, їхні довготи та широти та значення ознак (або категорія 1, і категорія 2, і обидві - в сюжеті вони позначені відповідно червоним, синім та зеленим кольорами). На кожну мову може бути до трьох балів, і, природно, дві мовні точки можуть лежати дуже близько один до одного.
name longitude latitude sp_sum
1 Modern Armenian 45 40 both
2 Modern Armenian 45 40 both
3 Modern Armenian 45 40 spatial
4 Dieri 138 -28.1667 both
5 Dieri 138 -28.1667 both
6 Finnish 25.5577 64.7628 non-spatial
7 Crimean Tatar 28.1418 43.8398 spatial
8 Ese Ejja -67.515 -11.7268 non-spatial
9 Makhuwa 38.8052 -14.8509 non-spatial
...
Я використовую пакет ggplot2 (саме той, з яким я найбільше знайомий, тому я з радістю продовжую його використовувати, але інші рішення також вітаються). Ось обрізка з попередньої спроби (код: див. Нижче 1 ):
Для кожного пункту я хотів би, щоб (грубе) положення - як і значення - все ще було видно. (Якщо для однієї мови є кілька точок, вони можуть поєднуватися.)
Чи є спосіб ...
- ... для переміщення точок в сторону як раз досить , так що немає overplotting (менш випадково , ніж, скажімо, за допомогою geom_jitter - є багато такого роду ухиляючись в beeswarm пакеті, наприклад)?
- ... та / або мати якусь "лінію", що вказує на початкове положення точки, якщо її потрібно було перемістити?
- ... або поєднувати точки закриття таким чином, щоб вони все ще були зрозумілими (можливо, там працює техніка роботи, яка використовує binning, тобто stat_bin * або щось із подібним ефектом)?
... або створити "інтерактивний сюжет", подібний до тих, які можна побачити на веб-сайтах, які все ще можна включити в pdf (я також думаю про здібності пакунків, таких як анімація та блискучі тут)? Наприклад, це виглядає так на wals.info :
З попередньої публікації тут я знаю, що пакет прямої позначки може переміщувати мітки, але я не знайшов способу змусити його також переміщувати точки.
Не соромтеся просити роз'яснення!
Примітка. Я знаю, що виникло ціла низка питань щодо перезволоження, але ті, на які я все розглядав, здавалося, мають інше (тобто статистичне) призначення (я не претендую на те , що я все це прочитав , тому я " буду рада прийняти посилання, звичайно). Я спробую перерахувати ті публікації, які я знаю і які можуть бути актуальними (- з того, що я прочитав, жодне з цих не відповідає точно на моє запитання.)
- stats.SE: Як я можу уникнути перекриття міток на R ділянці?
- ТАК: Динамічне розташування мітки точки даних в ggmap
1 Наступні рядки коду створили врожай зверху.
library(OpenStreetMap)
library(ggplot2)
data <- read.csv(header = T, sep = ",", dec = ".", quote= "'",
text = "'','name','longitude','latitude','sp_sum'
'1','Modern Armenian',45,40,'both'
'2','Modern Armenian',45,40,'both'
'3','Modern Armenian',45,40,'spatial'
'4','Dieri',138,-28.1667,'both'
'5','Dieri',138,-28.1667,'both'
'6','Finnish',25.5577,64.7628,'non-spatial'
'7','Crimean Tatar',28.1418,43.8398,'spatial'
'8','Sochiapam Chinantec',-96.6079,17.7985,'non-spatial'
'9','Ese Ejja',-67.515,-11.7268,'non-spatial'
'10','Makhuwa',38.8052,-14.8509,'non-spatial'
'11','Mualang',111.077,0.31083,'non-spatial'
'12','Martuthunira',116.607,-20.9294,'non-spatial'
'13','Evenki',108.626,53.85,'both'
'14','Afrikaans',30,-22,'both'
'15','Male (Ethiopia)',36.9892,5.91975,'both'
'16','Manchu',126.557,47.3122,'both'
'17','Dime',36.3329,6.20951,'non-spatial'
'18','Koorete',37.8679,5.80545,'non-spatial'
'19','Wolaytta',37.7537,6.32668,'both'
'20','Dizin',35.5763,6.1405,'both'")
map <- openproj(openmap(c(85, -179.9), c(-60, 179.9), zoom = 2, type = "nps"))
plot <- autoplot(map) +
geom_point(data = data, aes(x = longitude, y = latitude),
color = "white", alpha = 0.8, size = 8) +
geom_point(data = data, aes(x = longitude, y = latitude, color = sp_sum),
alpha = 0.3, size = 4)
plot