Tôi đã có một cơ sở dữ liệu chứa các ngôn ngữ, kinh độ và vĩ độ của chúng và một giá trị tính năng (loại 1, loại 2 hoặc cả hai - trong lô này lần lượt được đánh dấu màu đỏ, xanh lam và xanh lục). Có thể có tối đa ba điểm cho mỗi ngôn ngữ và tự nhiên hai điểm ngôn ngữ có thể nằm rất gần nhau.
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
...
Tôi đang sử dụng gói R ggplot2 (đó là gói tôi quen thuộc nhất, vì vậy tôi rất vui khi tiếp tục sử dụng nó - nhưng các giải pháp khác cũng được hoan nghênh). Đây là một cắt từ một lần thử trước (mã: xem bên dưới 1 ):
Đối với mọi điểm, tôi muốn vị trí (thô) - cũng như giá trị - vẫn hiển thị. (Nếu có nhiều điểm cho một ngôn ngữ, chúng có thể được kết hợp.)
Có cách nào ...
- ... để di chuyển các điểm sang một bên vừa đủ để không có sự thay thế quá mức (ít ngẫu nhiên hơn, bằng cách sử dụng geom_jitter - chẳng hạn như có rất nhiều kiểu né tránh trong gói sáp ong )?
- ... và / hoặc có một số loại "đường thẳng" chỉ đến vị trí ban đầu của một điểm nếu nó phải được di chuyển?
- ... Hoặc để kết hợp các điểm gần nhau theo cách mà chúng vẫn rõ ràng (có thể có một kỹ thuật làm việc ngoài kia sử dụng binning, tức là stat_bin * hoặc một cái gì đó có hiệu ứng tương tự)?
... Hoặc để tạo một "cốt truyện tương tác" như những gì được thấy trên các trang web vẫn có thể được đưa vào pdf (Tôi cũng đang nghĩ về khả năng của các gói như hoạt hình và sáng bóng ở đây)? Ví dụ: nó trông như thế này trên wals.info :
Từ một bài viết trước đây ở đây, tôi biết rằng gói directlabels có thể di chuyển nhãn, nhưng tôi chưa tìm được cách nào để làm cho nó di chuyển các điểm.
Hãy yêu cầu làm rõ!
Lưu ý: Tôi biết rằng đã có một số câu hỏi về việc đặt quá mức, nhưng những câu hỏi mà tôi đã xem xét dường như có một mục đích khác (tức là thống kê) (tôi không khẳng định đã đọc hết , vì vậy tôi d, vui vẻ chấp nhận một liên kết là tốt, tất nhiên). Tôi sẽ cố gắng liệt kê những bài đăng mà tôi biết và nó có thể có liên quan (- từ những gì tôi đã đọc, không ai trong số này trả lời chính xác câu hỏi của tôi.)
- stats.SE: Làm cách nào để tránh các nhãn chồng lấp trong biểu đồ R?
- SO: Nhãn điểm dữ liệu động Định vị trong ggmap
1 Các dòng mã sau đây đã tạo crop từ phía trên.
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