के अंतिम पंक्ति को बदलने मैं एक वैकल्पिक समाधान प्रदान करना चाहते हैं, एक कैनवास रोटेशन फीचर पेश करने के बाद, जो मैं प्रस्तावित करने वाला हूं, उसके समान मजबूत समाधान ggtern के नवीनतम संस्करण में आवश्यक था।
असल में, आपको एक क्रिया का निर्माण करके element_text
ऑब्जेक्ट, कोण (यानी डिग्री) और स्थिति (यानी x, y, शीर्ष या दाएं) में से एक जानकारी देता है, जो त्रिकोणमित्री का उपयोग करके रिश्तेदार स्थितियों को निर्धारित करने की आवश्यकता है।
#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)
निम्नलिखित में से कौन पैदा करता है:
ggplot2 आदेश के नवीनतम संस्करण में होगा: 'क्ष + थीम (axis.text.x = element_text (कोण = -90, hjust = 0))' ' – rnorberg
नहीं रह गया है element_text', मौजूद है, जब तक यह है ggplot2 पैकेज में नहीं ... – naught101
उन लोगों के लिए जिनके लिए अन्याय यहां वर्णित व्यवहार नहीं कर रहा है, 'थीम (axis.text.x = element_text (कोण = 9 0, vjust = 0.5)) आज़माएं। Ggplot2 0.9.3.1 के रूप में यह समाधान प्रतीत होता है। – lilster