2016-05-15 194 views
9

我有一些麻烦使用情节R包。我对情节很陌生,但我喜欢我可以使用ggplot-like语法,所以我试图让它工作。调整大小情节R gglotlot

我创建了一个方位图,其中可以将鼠标悬停的数据点,并查看关于该记录的细节。我对情节非常满意,但是我想调整它的大小,以便每个情节的y轴都不那么短,因为我想调整整个情节的高度和宽度。

因为我无法弄清楚如何覆盖默认大小,所以我可以找到的所有示例都使用plot_ly()而不是ggplotly()。除非需要,我宁愿不重建剧情只是为了调整大小。

我目前正在运行的代码是非常简单的:

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情节:%>%布局(自动调整大小= F,宽度= 1000,高度= 600),并根据需要调整绘图的宽度和高度。 – MLavoie

+0

感谢您的建议,但这并不奏效。以这种方式调整布局只会改变绘图空间的大小,但标题也会延伸。图表本身保持几乎相同 – Daina

+0

Scale =“free_y”你在找什么?它是facet_wrap函数的参数,并且ggplotly()将进行转换。 –

回答

5

这是一种解决方法。似乎在R-Markdown文档中工作,我猜测你需要什么?它仍然保留了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

在plotly_build的当前版本中,生成的对象没有$ layout $ width或$ layout $ height属性 – par

3

就像plot_ly()ggplotly()heightwidth的说法,见?ggplotly

一般来说这是很好的做法,始终设置height/width。如果你不这样做,并且你与其他人分享你的情节,那么尺寸可能会因情况而异。

这是ggplotly()尤其重要。在打印时,为了转换事物的大小,它必须假设height/width。如果您不指定这些,它会使用您的R图形设备的大小,并且我们无法保证调整大小的行为与您从R图形设备获得的大小完全一致。

1

我建议你更新到最新版本的情节。

要看到你在哪个版本:packageVersion("plotly")

然后,您可以widthheight参数添加到您的ggplotly()函数调用。

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) 

一个额外的建议,我想补充的是,如果你在A R降价文件/ R笔记本电脑上运行这个,这个数字本身可能还需要一些调整,你plotly(这实在是一个htmlwidget)不会在尺寸不足的窗口中使用滚动条进行渲染。这可能与fig.widthfig.height参数来完成:

enter image description here

+0

感谢您编辑D. Woods! – onlyphantom