Làm cách nào để tránh các nhãn chồng lấp trong ô R? [đóng cửa]


44

Tôi đang cố gắn nhãn một biểu đồ phân tán khá đơn giản trong R. Đây là những gì tôi sử dụng:

plot(SI, TI)
text(SI, TI, Name, pos=4, cex=0.7)

Kết quả là tầm thường, như bạn có thể thấy (bấm vào để phóng to):

nhập mô tả hình ảnh ở đây

Tôi đã cố gắng bù đắp cho điều này bằng cách sử dụng textxychức năng, nhưng nó không tốt hơn . Làm cho hình ảnh lớn hơn không hoạt động cho các cụm dày đặc.

Có bất kỳ chức năng hoặc cách dễ dàng để bù đắp cho điều này và để cho nhãn R không trùng nhau ?


Đây là một tập hợp con nhỏ của dữ liệu tôi có:

Name;SI;TI
01_BAD_talking_head;6.944714;4.421208
01_GOOD_talking_head;5.680141;4.864035
01_GOOD_talking_head_subtitles;7.170114;4.664205

1
Tôi đã đăng câu hỏi tương tự ở đây , hãy xem câu trả lời ở đó ..
Tò mò

3
Tôi tìm thấy một giải pháp ! Các identify()bạn hãy tự quyết định nơi để đặt các nhãn! Nó không lý tưởng, nhưng từ các giải pháp đề xuất, điều này tốt nhất cho tôi.
Tò mò

Câu trả lời:



19

Các directlabelsgói làm điều đó. Từ trang web của nó :

Gói này là một nỗ lực để biến việc dán nhãn trực tiếp thành hiện thực trong thực tiễn thống kê hàng ngày bằng cách cung cấp một bộ các chức năng hữu ích giúp cho việc dán nhãn trực tiếp các ô chung dễ dàng thực hiện với các hệ thống âm mưu cấp cao như mạng tinh thể và ggplot2.

Nó có thể không phải luôn luôn có thể cho các lô dày đặc, mặc dù.

Đây là một ví dụ ngắn:

set.seed(123)
a <- c(rnorm(10,-3,2),rnorm(10,3,2))
b <- c(rnorm(10,-3,2),rnorm(10,3,2))
dfr <- data.frame(a,b)
dfr$t <- c(paste("A",1:10,sep=""),paste("B",1:10,sep=""))
direct.label(xyplot(b~a,dfr,groups=t, col="black"))

Tôi đã quản lý để thoát khỏi màu tô điểm với col="black", nhưng không nhãn.


1
Tôi gặp khó khăn khi làm cho nó hoạt động. Bạn có thể cung cấp một ví dụ làm việc đơn giản?
slhck

1
Trong trường hợp của bạn, một cái gì đó như direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))sẽ nhận được một kết quả tương tự.
Laurent

Hoàn hảo. Đây là những gì tôi đã kết thúc bằng cách sử dụng ví dụ đơn giản cuối cùng của bạn. Các nhãn màu và điểm thực sự rất đẹp, vì bạn biết nhãn thuộc về đâu.
slhck

1
Tôi đã phải sử dụng library(lattice)để có được xyplotđể làm việc.
David J. Harris

14

Tôi đề nghị bạn hãy xem wordcloudgói. Tôi biết gói này không tập trung chính xác vào các điểm mà là chính các nhãn và phong cách dường như khá cố định. Tuy nhiên, kết quả tôi nhận được từ việc sử dụng nó là khá ấn tượng. Cũng lưu ý rằng phiên bản gói trong câu hỏi đã được phát hành về thời gian bạn đặt câu hỏi, vì vậy nó vẫn còn rất mới.

http://blog.fellstat.com/?cat=11

đầu ra textplot ()


9

Tôi gặp phải một vấn đề tương tự với một số lô mà tôi đã làm việc và đã viết một gói cơ bản sử dụng mô phỏng trường lực để điều chỉnh vị trí của đối tượng. Ưu điểm so với một số giải pháp được trích dẫn ở trên là điều chỉnh động cho độ gần đối tượng tương đối trong 2D. Mặc dù có nhiều cải tiến là có thể, bao gồm cả heuristic và tích hợp với ggplot, v.v. nó dường như hoàn thành nhiệm vụ. Sau đây minh họa các chức năng:

install.packages("FField", type = "source")
install.packages("ggplot2")
install.packages("gridExtra")
library(FField)
FFieldPtRepDemo()

Hiện tại không có phương pháp phỏng đoán cho nhiều lĩnh vực và phân phối điểm vì giải pháp đáp ứng nhu cầu của tôi và tôi muốn nhận được một cái gì đó hữu ích cho mọi người một cách nhanh chóng nhưng tôi sẽ thêm những thứ này trong trung hạn. Tại thời điểm này, tôi khuyên bạn nên mở rộng biểu đồ thành 100x100 trở lại và điều chỉnh một chút các tham số lực hút và lực đẩy mặc định như được bảo hành.


8

Trong trường hợp đơn giản là bạn không thể làm cho các nhãn hoạt động chính xác như được tạo bởi R, hãy nhớ rằng bạn luôn có thể lưu các biểu đồ ở định dạng vector (như .pdf) và kéo chúng vào một chương trình chỉnh sửa như InkScape hoặc Adobe Illustrator.


8

Một vài công cụ bổ sung để xem xét trong R:

Chúng sẽ không làm mọi thứ cho bạn, nhưng một trong số chúng có thể là một phần của giải pháp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.