आर प्लाट में ओवरलैपिंग लेबल से मैं कैसे बचूँ? [बन्द है]


44

मैं आर में एक बहुत ही सरल स्कैल्पल को लेबल करने की कोशिश कर रहा हूं। यही वह है जो मैं उपयोग करता हूं:

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

परिणाम औसत दर्जे का है, जैसा कि आप देख सकते हैं (विस्तार के लिए क्लिक करें):

यहाँ छवि विवरण दर्ज करें

मैंने textxyफ़ंक्शन का उपयोग करके इसके लिए क्षतिपूर्ति करने की कोशिश की , लेकिन यह बेहतर नहीं है । छवि को बड़ा बनाने से घने समूहों के लिए काम नहीं करता है।

क्या इसकी भरपाई करने के लिए कोई कार्य या आसान तरीका है और आर प्लॉट लेबल को ओवरलैप न होने दें ?


यहाँ मेरे पास डेटा का एक छोटा सा उपसमूह है:

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
मैंने इसी तरह के प्रश्न को यहां पोस्ट किया है , वहां के जवाबों पर एक नजर डालते हैं ..
उत्सुक

3
मुझे एक उपाय मिला ! identify()लेट आप मैन्युअल रूप से तय है, जहां लेबल जगह! यह आदर्श नहीं है, लेकिन प्रस्तावित समाधानों से यह मेरे लिए सबसे अच्छा काम करता है।
जिज्ञासु

जवाबों:


29

नया पैकेज ggrepel देखें । ggrepel, ggplot2 के लिए जियोम को ओवरलैपिंग टेक्स्ट लेबल्स को रीप्ले करने के लिए प्रदान करता है। यह geom_text और geom_label दोनों के लिए काम करता है।

यहाँ छवि विवरण दर्ज करें

चित्र इस ब्लॉग पोस्ट से लिया गया है ।


19

directlabelsपैकेज करता है। इसके वेब पेज से :

यह पैकेज रोजमर्रा के सांख्यिकीय अभ्यास में प्रत्यक्ष लेबलिंग को एक वास्तविकता बनाने के लिए उपयोगी कार्यों को उपलब्ध कराने का एक प्रयास है जो सामान्य प्लॉटों की प्रत्यक्ष लेबलिंग को उच्च स्तरीय प्लॉटिंग सिस्टम जैसे जाली और ggplot2 के साथ करना आसान बनाता है।

यह हमेशा घने भूखंडों के लिए संभव नहीं हो सकता है, हालांकि।

यहाँ एक छोटा उदाहरण दिया गया है:

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

मैं प्रबंधन के साथ बिंदु रंग से छुटकारा मिल गया col="black", लेकिन लेबल नहीं।


1
मुझे काम करने में दिक्कत हो रही है। क्या आप शायद एक सरल कार्य उदाहरण प्रदान कर सकते हैं?
19

1
आपके मामले में, कुछ direct.label(xyplot(SI~TI,data=yourDataFrame,group=Name))इसी तरह का परिणाम मिलना चाहिए।
लॉरेंट

उत्तम। यहां मैंने आपके अंतिम सरल उदाहरण का उपयोग करके समाप्त किया । रंग लेबल और बिंदु वास्तव में बहुत अच्छे हैं, क्योंकि आप जानते हैं कि लेबल कहाँ हैं।
स्लोक

1
मुझे काम library(lattice)करने के लिए उपयोग करना था xyplot
डेविड जे। हैरिस

14

मेरा सुझाव है कि आप wordcloudपैकेज पर एक नज़र डालेंगे । मुझे पता है कि यह पैकेज केवल बिंदुओं पर नहीं बल्कि स्वयं लेबल पर केंद्रित है, और यह भी कि शैली निश्चित रूप से तय होती है। लेकिन फिर भी, मुझे इसके उपयोग से जो परिणाम मिले, वे बहुत आश्चर्यजनक थे। यह भी ध्यान दें कि प्रश्न में पैकेज संस्करण उस समय के बारे में जारी किया गया था जब आपने प्रश्न पूछा था, इसलिए यह अभी भी बहुत नया है।

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

textplot () आउटपुट


9

मैं कई ऐसे भूखंडों के साथ एक समस्या में भाग गया, जिनके साथ मैं काम कर रहा हूं और एक मूल पैकेज लिखा है जो ऑब्जेक्ट स्थानों को समायोजित करने के लिए बल क्षेत्र सिमुलेशन का उपयोग करता है। उपरोक्त उद्धृत समाधानों में से कुछ पर लाभ 2 डी में सापेक्ष वस्तु निकटता के लिए गतिशील समायोजन है। जबकि सुधार और ggplot के साथ एकीकरण सहित बहुत सुधार संभव है, आदि यह कार्य पूरा करने के लिए लगता है। निम्नलिखित कार्यशीलता को दर्शाता है:

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

अभी के लिए विभिन्न क्षेत्रों और बिंदु वितरण के लिए कोई अनुमान नहीं है क्योंकि समाधान मेरी जरूरतों को पूरा करता था और मैं चाहता था कि लोगों को जल्दी से कुछ मदद मिल जाए लेकिन मैं इन्हें मध्यम अवधि में जोड़ूंगा। इस समय मैं 100x100 और पीछे के चार्ट को स्केल करने की सलाह देता हूं और डिफ़ॉल्ट आकर्षण और प्रतिकर्षण मापदंडों को थोड़ा संशोधित करते हुए वारंट करता हूं।


8

इस घटना में कि आप बस आर द्वारा निर्मित सही ढंग से काम करने के लिए लेबल नहीं प्राप्त कर सकते हैं , ध्यान रखें कि आप ग्राफ़ को हमेशा एक वेक्टर प्रारूप (जैसे .pdf) में सहेज सकते हैं और उन्हें एक संपादन प्रोग्राम जैसे इंकस्केप या एडोब इलस्ट्रेटर में खींच सकते हैं।


8

R में देखने के लिए कुछ अतिरिक्त उपकरण:

  • spread.labelsमें समारोह plotrixपैकेज
  • thigmophobe.labelsमें plotrixपैकेज
  • spread.labsमें समारोह TeachingDemosपैकेज
  • TkIdentifyमें समारोह TeachingDemosपैकेज

ये आपके लिए सब कुछ नहीं करेंगे, लेकिन उनमें से एक समाधान का हिस्सा हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.