R çiziminde üst üste binen etiketleri nasıl önleyebilirim? [kapalı]


44

R'de oldukça basit bir scatterplot etiketlemeye çalışıyorum. Kullandığım şey:

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

Sonuç, gördüğünüz gibi vasattır (büyütmek için tıklayın):

görüntü tanımını buraya girin

textxyFonksiyonu kullanarak bunu telafi etmeye çalıştım , ama daha iyi değil . Görüntünün kendisini büyütmek yoğun kümeler için işe yaramaz.

Bunu telafi etmenin ve R'nin çakışmayan etiketleri çizmesine izin veren herhangi bir işlev veya kolay yolu var mı ?


İşte sahip olduğum verilerin küçük bir alt kümesi:

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
Burada benzer bir soru yayınladım , oradaki cevaplara bir göz atın ..
Meraklı

3
Bir çözüm buldum ! identify()Let el etiketi yerleştirmek için karar var! Bu ideal değil, ama önerilen çözümlerden bu benim için en iyisi.
Meraklı

Yanıtlar:



19

directlabelsPaket bunu yapmaz. Onun itibaren web sayfasında :

Bu paket, günlük istatistik uygulamalarında doğrudan etiketlemeyi, kafes ve ggplot2 gibi yüksek seviyeli komplo sistemleriyle yapmak için ortak arazilerin doğrudan etiketlenmesini kolaylaştıran kullanışlı bir fonksiyonlar bütünü haline getirme çabasıdır.

Yine de, yoğun araziler için her zaman mümkün olmayabilir.

İşte kısa bir örnek:

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"))

Renklendirme noktasından kurtulmayı başardım col="black", ama etiketleri değil.


1
Çalışması için sorun yaşıyorum. Basit bir çalışma örneği verebilir misiniz?
slhck

1
Senin durumunda, böyle bir şey direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))benzer bir sonuç almalıdır.
Laurent

Mükemmel. İşte son basit örneğinizi kullanarak sona erdi . Renkli etiketler ve noktalar aslında çok hoş, çünkü etiketlerin nereye ait olduğunu biliyorsunuz.
slhck

1
Çalışmak için kullanmak library(lattice)zorunda kaldım xyplot.
David J. Harris

14

wordcloudPakete bir göz atmanı öneririm . Bu paketin tam olarak noktalara değil, etiketlerin kendilerine odaklandığını ve stilin oldukça sabit göründüğünü biliyorum. Ama yine de, onu kullanmaktan aldığım sonuçlar oldukça çarpıcıydı. Ayrıca, söz konusu paket sürümünün soruyu sorduğunuz süre içerisinde yayınlandığını unutmayın, bu yüzden hala çok yeni.

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

textplot () çıkışı


9

Üzerinde çalıştığım birkaç çizimde de benzer bir sorunla karşılaştım ve nesne alanlarını ayarlamak için kuvvet alanı simülasyonu kullanan temel bir paket yazdım. Yukarıda belirtilen çözümlerin bazılarına göre avantaj, 2D'de göreceli nesneye yakınlık için dinamik ayardır. Sezgisel ve ggplot ile entegrasyon gibi birçok gelişme mümkün olsa da, bu görevi yerine getirmektedir. Aşağıdaki fonksiyonellik gösterilmektedir:

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

Şimdilik, çözüm ihtiyaçlarımı karşıladığı için çeşitli alanlara ve nokta dağıtımlarına yönelik herhangi bir buluşsal görüş yoktur ve hızlı bir şekilde insanlara hızlıca yardımcı olacak bir şeyler almak istedim ancak bunları orta vadede ekleyeceğim. Şu anda çizelgeleri 100x100 ve geriye ölçeklemenizi ve varsayılan cazibe ve itme parametrelerini garanti edildiği şekilde hafifçe ayarlamanızı öneriyorum.


8

Sadece durumunda olamaz R tarafından üretilen doğru işe etiketler olsun, her zaman ve (.pdf gibi) bir vektör formatında grafikler tasarrufu Inkscape ya Adobe Illustrator gibi bir düzenleme programıyla bunları çekebilir unutmayın.


8

R'de dikkat edilmesi gereken birkaç ek araç:

Bunlar sizin için her şeyi yapmayacak, ama onlardan biri bir çözümün parçası olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.