दिलचस्प पोस्ट
किसी एंड्रॉइड डिवाइस के मैक पते को प्रोग्रामेटिक रूप से कैसे ढूंढें जीसीसी / जी ++ के साथ लिनक्स पर विंडोज के लिए कैसे संकलित करें? सीकेएडिटेटर के साथ आप एक कस्टम फ़ाइल ब्राउज़र / अपलोडर कैसे एकीकृत कर सकते हैं? जावास्क्रिप्ट का उपयोग करते हुए DOM तत्व को कैसे बदलना है? क्यों नहीं var_dump DomDocument ऑब्जेक्ट के साथ काम करता है, जबकि प्रिंट ($ dom-> saveHTML ()) करता है? AngularJS app.run () प्रलेखन? मैं एक स्ट्रीम की सामग्री को दूसरे में कैसे कॉपी करूँ? jquery form.serialize और अन्य पैरामीटर समारोह हस्ताक्षर का वापसी प्रकार हिस्सा है? तालिका पंक्ति गणना प्राप्त करने का सबसे कारगर तरीका पायथन में एक मैट्रिक्स को स्थानांतरित करें सी ++ में मेमोरी लीक "अपरिभाषित व्यवहार" वर्ग की समस्या क्या है? Google क्लाउड मेसेजिंग पंजीकरण त्रुटि को कैसे ठीक करें: SERVICE_NOT_AVAILABLE? एमएस एक्सेस टेबल पर डेटा निर्यात करने के लिए एक्सेल VBA का उपयोग करना त्रुटियाँ: "INSERT EXEC वक्तव्य को नेस्टेड नहीं किया जा सकता।" और "INSERT-EXEC स्टेटमेंट के अंदर रोलबैक स्टेटमेंट का उपयोग नहीं किया जा सकता।" यह कैसे हल करें?

जीजीप्लोट 2 में अक्ष लेबल घूर्णन और अंतर करना

मेरे पास एक साजिश है जहां एक्स-अक्ष एक कारक है जिसका लेबल लंबा है हालांकि संभवतया एक आदर्श दृश्यता नहीं है, अब के लिए मैं इन लेबल्स को सिर्फ ऊर्ध्वाधर करने के लिए घुमाएगा। मैंने इस भाग को नीचे दिए गए कोड के साथ लगाया है, लेकिन जैसा कि आप देख सकते हैं, लेबल पूरी तरह से दिखाई नहीं दे रहे हैं

data(diamonds) diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut)) q <- qplot(cut,carat,data=diamonds,geom="boxplot") q + opts(axis.text.x=theme_text(angle=-90)) 

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

वेब के समाधान से एकत्रित समाधान "जीजीप्लोट 2 में अक्ष लेबल घूर्णन और अंतर करना"

पिछली लाइन को बदलने के लिए

 q + theme(axis.text.x = element_text(angle = 90, hjust = 1)) 

डिफ़ॉल्ट रूप से, कुल्हाड़ियों को पाठ के केंद्र में गठबंधन किया जाता है, भले ही घुमाया हो। जब आप +/- 90 डिग्री को घुमाएंगे, तो आप आमतौर पर इसके बजाय किनारे पर गठबंधन करना चाहते हैं:

वैकल्पिक शब्द

ऊपर दी गई छवि इस ब्लॉग पोस्ट से है

टैक्सी लेबल पर पाठ को पूरी तरह से दृश्यमान बनाने और y-axis लेबल के रूप में एक ही दिशा में पढ़ने के लिए, अंतिम पंक्ति को

 q + theme(axis.text.x=element_text(angle=90, hjust=1)) 

कैनवास रोटेशन सुविधा को शुरू करने के बाद से, मैं एक वैकल्पिक समाधान प्रदान करना चाहता हूं, एक मजबूत समाधान जो कि मैं प्रस्तावित करने के लिए कर रहा हूं, के बारे में ggtern के नवीनतम संस्करण में आवश्यक था।

असल में, आपको एक ऐसा समारोह बनाकर त्रिकोणमिति का उपयोग करके रिश्तेदार पदों को निर्धारित करना होगा, जो element_text ऑब्जेक्ट देता है, दिए गए कोण (यानी डिग्री) और पोजीशनिंग (जैसे एक्स, वाई, टॉप या दाएं) में से एक

 #Load Required Libraries library(ggplot2) library(gridExtra) #Build Function to Return Element Text Object rotatedAxisElementText = function(angle,position='x'){ angle = angle[1]; position = position[1] positions = list(x=0,y=90,top=180,right=270) if(!position %in% names(positions)) stop(sprintf("'position' must be one of [%s]",paste(names(positions),collapse=", ")),call.=FALSE) if(!is.numeric(angle)) stop("'angle' must be numeric",call.=FALSE) rads = (angle - positions[[ position ]])*pi/180 hjust = 0.5*(1 - sin(rads)) vjust = 0.5*(1 + cos(rads)) element_text(angle=angle,vjust=vjust,hjust=hjust) } 

सच कहूँ तो, मेरी राय में, मुझे लगता है कि 'ऑटो' विकल्प को hjust और vjust तर्कों के लिए ggplot2 में उपलब्ध कराया जाना चाहिए, जब कोण निर्दिष्ट करते हैं, वैसे भी, यह दर्शाता है कि उपरोक्त काम कैसे करता है।

 #Demonstrate Usage for a Variety of Rotations df = data.frame(x=0.5,y=0.5) plots = lapply(seq(0,90,length.out=4),function(a){ ggplot(df,aes(x,y)) + geom_point() + theme(axis.text.x = rotatedAxisElementText(a,'x'), axis.text.y = rotatedAxisElementText(a,'y')) + labs(title = sprintf("Rotated %s",a)) }) grid.arrange(grobs=plots) 

जो निम्नलिखित का उत्पादन करता है:

उदाहरण

+ coord_flip() उपयोग करें + coord_flip()

"डेटा विज्ञान के लिए आर" में, विकिम और ग्रोम्यूमूंड इस सटीक समस्या से बात करते हैं। अध्याय 3.8 में, स्थिति समायोजन , वे लिखते हैं:

coord_flip() x और y अक्षों को स्विच करता है यह उपयोगी है (उदाहरण के लिए), यदि आप क्षैतिज बॉक्सप्लेट्स चाहते हैं यह भी लंबे समय तक लेबल के लिए उपयोगी है: एक्स-अक्ष पर ओवरलैप किए बिना उन्हें फिट करना कठिन है

इसे अपनी साजिश में लागू करने के लिए, हम सिर्फ + coord_flip() जोड़ते हैं:

 data(diamonds) diamonds$cut <- paste("Super Dee-Duper",as.character(diamonds$cut)) qplot(cut,carat,data = diamonds, geom = "boxplot") + coord_flip() 

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

और अब सुपर लंबे खिताब क्षैतिज रूप से फैल गए हैं और पढ़ने के लिए बहुत आसान है!