2016-05-15 15 views
9

मुझे साजिश आर पैकेज का उपयोग कर कुछ परेशानी हो रही है। मैं साजिश के लिए बहुत नया हूं लेकिन मुझे प्यार था कि मैं ggplot-like वाक्यविन्यास का उपयोग कर सकता हूं इसलिए मैं इसे काम करने की कोशिश कर रहा हूं।साजिश का आकार बदलना आर ggplotly

मैंने एक पहलू साजिश बनाई जहां आप डेटापॉइंट पर होवर कर सकते हैं और उस रिकॉर्ड के बारे में विवरण देख सकते हैं। मैं साजिश से बहुत खुश हूं, लेकिन मैं इसका आकार बदलना चाहता हूं ताकि प्रत्येक साजिश का वाई-अक्ष इतना छोटा न हो, क्योंकि मैं समग्र साजिश की ऊंचाई और चौड़ाई समायोजित करना चाहता हूं।

जैसा कि, मैं यह नहीं समझ सकता कि डिफ़ॉल्ट आकार को ओवरराइड कैसे किया जाए और मैं अपने बालों को खींच रहा हूं क्योंकि सभी उदाहरण मैं ggplotly() के बजाय plot_ly() का उपयोग कर सकते हैं। मैं साजिश को फिर से समायोजित करने के लिए साजिश का पुनर्निर्माण नहीं करना चाहूंगा जब तक कि मुझे इसकी आवश्यकता न हो।

कोड मैं वर्तमान में चल रहा हूँ वास्तव में सरल है:

plot <- ggplot(data = counts_country, aes(x = Year, y = Count, color = Region, text = paste("country:", Country))) + 
    geom_point(size= 2, alpha = (1/2)) + 
    facet_wrap(~ Region, ncol = 1) 

(gg_plot <- ggplotly(plot)) 

आप देख सकते हैं कि वास्तव में क्या मैं यहाँ के साथ काम कर रहा हूँ: http://rpubs.com/dbouquin/180894

मैं की दो पंक्तियों को दिखाने के लिए भूखंड का समायोजन की कोशिश की भूखंडों को अभी भी परेशानी है क्योंकि साल के लेबल एक साथ टूट जाते हैं। आकार बदलने की तरह मुझे लगता है।

+0

मैं अगर यह है कि आप क्या देख रहे हैं यकीन नहीं है, लेकिन आप अपने plotly साजिश करने के लिए जोड़ सकते हैं:%>% लेआउट (AutoSize = एफ, चौड़ाई = 1000, ऊंचाई = 600) और साजिश की चौड़ाई और ऊंचाई समायोजित करें जैसा आप चाहें। – MLavoie

+0

सुझाव के लिए धन्यवाद, लेकिन यह काम नहीं कर रहा है। उस लेआउट को समायोजित करना जिस तरह से प्लॉटिंग स्पेस के आकार को बदलता है, लेकिन हेडर भी फैलते हैं। ग्राफ स्वयं लगभग – Daina

+0

रहते हैं क्या स्केल = "free_y" जो आप खोज रहे हैं? यह facet_wrap फ़ंक्शन के लिए तर्क है, और ggplotly() अनुवाद करेगा। –

उत्तर

5

यहां एक कामकाज है। आर-मार्कडाउन दस्तावेजों में काम करने लगता है जो मुझे लगता है कि आपको क्या चाहिए? यह अभी भी ggplot2 वाक्य रचना को बरकरार रखता है, लेकिन अभी ऐसा लगता है plotly_build()ggplotly() के बजाय

--- 
output: html_document 
--- 

### Using ggplotly() 
```{r, warning = F, message = F} 
library(plotly) 
library(dplyr) 

gg <- mtcars %>% 
    ggplot(aes(wt, mpg, color = gear)) + 
    geom_point() + 
    facet_wrap(~hp) 

ggplotly(gg) 
``` 

### Using plotly_build() 
```{r} 
ggp_build <- plotly_build(gg) 
ggp_build$layout$height = 800 
ggp_build$layout$width = 600 

ggp_build 
``` 

उपयोग करता है:,

enter image description here

enter image description here

+0

प्लॉटली_बिल्ड के लिए pltly के वर्तमान संस्करण में परिणामस्वरूप ऑब्जेक्ट में $ लेआउट $ चौड़ाई या $ लेआउट $ ऊंचाई संपत्ति नहीं है – par

3

बस plot_ly() की तरह, ggplotly() एक height और एक width तर्क है ?ggplotly देखें।

आम तौर पर यह हमेशा height/width सेट करने के लिए अच्छा अभ्यास है। यदि आप नहीं करते हैं, और आप अपनी साजिश किसी और के साथ साझा करते हैं, तो आकार के संदर्भ के आधार पर आकार अलग हो सकता है।

यह ggplotly() के लिए विशेष रूप से महत्वपूर्ण है। प्रिंट समय पर, चीजों के आकार को बदलने के लिए, इसे height/width मानना ​​होगा। यदि आप इन्हें निर्दिष्ट नहीं करते हैं, तो यह आपके आर ग्राफिक्स डिवाइस के आकार का उपयोग करता है, और हम हमेशा यह गारंटी नहीं दे सकते कि आकार बदलने का व्यवहार पूरी तरह से आपके आर ग्राफिक्स डिवाइस से प्राप्त होगा।

1

मैं आपको साजिश के नवीनतम संस्करण में अपडेट करने की सलाह देता हूं।

देखने के लिए कौन-सा संस्करण पर कर रहे हैं: packageVersion("plotly")

तब आप अपने ggplotly() कार्यप्रणाली कॉल को width और height पैरामीटर जोड़ सकते हैं।

el <- as.data.frame(economics_long[,1:3]) 
econp <- ggplot(el, aes(date, value, group=variable)) + 
    geom_line()+ 
    facet_grid(variable ~ ., scale = "free_y")+ 
    labs(title="US Economic time series") 

ggplotly(econp, height = 350, width=600) 

एक अतिरिक्त सुझाव मैं जोड़ना होगा कि यदि आप एक आर Markdown दस्तावेज़/आर नोटबुक में इस चला रहे हैं, यह आंकड़ा अपने आप में भी कुछ समायोजन तो अपने plotly (जो वास्तव में एक htmlwidget है) नहीं होगा की आवश्यकता हो सकती है एक अंडरसाइज्ड विंडो में एक स्क्रोलर के साथ प्रस्तुत करें।यह fig.width और fig.height मानकों के साथ किया जा सकता है:

enter image description here

+0

संपादन डी। वुड्स के लिए धन्यवाद! – onlyphantom

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