2017-03-29 5 views
7

मैं gganimate का उपयोग करके कुछ मासिक डेटा एनिमेट करने का प्रयास कर रहा हूं। भूखंड महान काम कर रहे हैं, सिवाय इसके कि अवरोही की उपस्थिति (बेसलाइन के नीचे जाने वाले अक्षरों, यानी जी, जे, पी, क्यू, और वाई) शीर्षक की मात्रा को बदलता है। यह बदले में, शीर्षक की आधार रेखा को थोड़ा सा स्थानांतरित करता है, जो एनीमेशन से अलग हो जाता है। यही है, शीर्षक शीर्षक में अवरोही होने पर शीर्षक थोड़ा सा "कूदता है"।अवरोही अक्षरों के साथ एनिमेट करते समय शीर्षक स्थान को बदलना

एक उदाहरण:

myDF <- 
    data.frame(
    Date = seq(as.Date("2015-01-15") 
       , as.Date("2015-12-15") 
       , "1 month") 
    , x = 1:12 
    , y = 1:12 
) 

myDF$frame <- 
    factor(format(myDF$Date, "%Y-%b") 
     , levels = paste0("2015-", month.abb)) 

toAnimate <- 
    ggplot(
    myDF 
    , aes(x = x 
      , y = y 
      , frame = frame) 
) + 
    geom_point() + 
    theme_gray() 

gganimate::gganimate(toAnimate) 

enter image description here

gganimate के एक पुराने संस्करण का उपयोग करते हुए इस मुद्दे को और अधिक स्पष्ट किया गया था (और वर्ष प्रदर्शित करने के लिए शामिल किए जाने की आवश्यकता नहीं है), के रूप में यह साजिश बजाय ले जाया गया

gganimate::gg_animate(toAnimate) 

enter image description here

: शीर्षक के

मैं सभी कैप्स (जिसमें कोई अवरोधक नहीं है) का उपयोग करके इस मुद्दे को "ठीक" कर सकता है, लेकिन मुझे विशेष रूप से इसके लिए सभी कैप्स के रूप में विशेष रूप से पसंद नहीं है (विशेष रूप से वास्तविक उपयोग मामले के लिए बड़े खिताब के हिस्से के रूप में)। मैं फ्रेम शीर्षक को उस चीज़ के साथ भी प्रीपेड कर सकता हूं जिसमें पहले से ही अवरोधक है। ggtitle("Timeperiod: ") हालांकि मैं इस मुद्दे को हल करने के लिए केवल अप्रासंगिक पाठ नहीं जोड़ूंगा ("टाइमपेरियोड:" जोड़ना जो मैं अभी के लिए गया हूं)।

मैं ggplot2 में theme पर मदद के माध्यम से देखा है, लेकिन मैं कुछ भी है जैसे कि यह इस मुद्दे के समाधान होता लग रहा है कि नहीं देख रहा हूँ।

+0

तो आपको अपडेट * gganimate * की कोशिश की? सबसे वर्तमान संस्करण ने 'gganimate' के साथ फ़ंक्शन' gg_animate' को प्रतिस्थापित किया है। मैं नए संस्करण के साथ अवरोही मुद्दे को पुन: उत्पन्न नहीं कर सकता। – aosmith

+0

धन्यवाद @ एस्मिथ। मैंने अभी अपडेट किया है, और समस्या अब और अधिक सूक्ष्म है (संभावित रूप से एक मुद्दा नहीं होने के बिंदु पर)। हालांकि, अद्यतन अब शीर्षक की आधार रेखा को स्थानांतरित करने का कारण बनता है (जो साजिश क्षेत्र बदलने से बेहतर है, लेकिन फिर भी आदर्श नहीं है)। जब शीर्षक में महीने में कोई लीड होती है तो समस्या कम सूक्ष्म होती है, इसलिए मैंने इसे देखने में आसान बनाने के लिए साजिश को थोड़ा सा समायोजित किया है (वर्ष शामिल है)। –

उत्तर

2

ऐसा लगता है कि शीर्षक के लिए स्थान आरक्षित करते समय शीर्षक की ऊंचाई केवल टेक्स्ट की ऊंचाई प्राप्त होती है।

तो आप साजिश में कहीं भी शीर्षक रखने के लिए geom_text का उपयोग कर सकते हैं। उदाहरण के लिए, अगर मैं कार्य करें:

ggplot(myDF, aes(x=x,y=y, label=frame)) + 
    geom_point()+theme_gray() + 
    geom_text(x=2.5,y=5,aes(label=frame),adj=0) 

(सिर्फ एक ggplot, अभी तक एनिमेटेड नहीं ... के रूप में) मैं सभी 2015 के बिल्कुल अतिव्यापी देख सकते हैं और महीने के नामों की descenders स्पष्ट रूप से वहाँ पाठ कर रहे हैं, और आधार रेखा स्थिर है।

तो यदि आप साजिश पर अपने शीर्षक को एक आसान जगह में डाल सकते हैं, तो आप इसका उपयोग कर सकते हैं और gganimate में title_frame=FALSE का उपयोग कर सकते हैं।

मैं ggplot2 पर एक बग/एन्हांसमेंट रिपोर्ट भी मानता हूं। आप शीर्षक बड़ा करते हैं तो यह वास्तव में पर्याप्त भूखंड पर stomps:

ggplot(myDF, aes(x=x,y=y)) +geom_point()+theme(plot.title=element_text(size=rel(10),debug=TRUE)) + labs(title="y") 

enter image description here

+0

यह एक ठोस कामकाज है, और एक बड़ी मदद है। प्रैक्टिस में, जो साजिश मैं बना रहा हूं वह काफी जटिल है (पहलुओं, कारक इत्यादि) कि 'geom_text' का उपयोग शीर्षक वर्कअराउंड के रूप में आदर्श से कम है।यह देखना बहुत दिलचस्प है कि "गलती" (?) अंतरिक्ष आरक्षण के 'ggplot2' के हैंडलिंग में झूठ बोल सकती है। हालांकि, मुझे यकीन नहीं है कि यह उपयोग केस पुनर्गठन को उचित ठहराने के लिए पर्याप्त है। उपरोक्त, लेकिन मैं थोड़ी देर के लिए स्वीकार नहीं कर रहा हूं यह देखने के लिए कि क्या कोई समस्या जो इस मुद्दे को संबोधित करती है, मुझे लगता है (मुझे संदेह है, जैसा कि मुझे लगता है कि आपकी व्याख्या उसको रोकती है)। –

+1

यदि शीर्षक में अदृश्य "वाई" जोड़ने का कोई तरीका था, तो यह काम कर सकता है ... मैं ऊंचाई को ठीक करने के लिए कोई भी 'element_text' विकल्प नहीं देख सका। – Spacedman

संबंधित मुद्दे