2017-12-18 320 views
0

如何更改ggplotly的宽度和高度?如何更改ggplotly的宽度和高度?有没有简单的方法来改变宽度和高度?

如果我们使用ggplot,它可以使用ggsave

ggsave(filename = "foo300.png", ggplot(mtcars, aes(x=wt, y=mpg)) + 
      geom_point(size=2, shape=23) + theme_bw(base_size = 10), 
     width = 5, height = 4, dpi = 300, units = "in", device='png') 

我使用

htmltools::browsable(gg[[i]]) 

htmltools::save_html(gg[[i]],path) 

OR

htmlwidgets::saveWidget(print(gg[[i]]), path) 

打印图形和保存的HTML,但图太小和一些单词重叠,但我想要一个大字体,所以我希望改变图形的大小。

我知道可以使用它来改变宽度和高度的小块。

library(plotly) 
m <- list(
    l = 50, 
    r = 50, 
    b = 100, 
    t = 100, 
    pad = 4 
) 
p <- plot_ly(x = seq(0, 8), y = seq(0, 8)) %>% 
    layout(autosize = F, width = 500, height = 500, margin = m) 

这是我的样本数据集。

d1 <- 
    data.frame(col_one = c(1, 2, 3, 3), 
      col_two = c("aa", "bb", "aa", "bb")) 
d2 <- 
    data.frame(col_one = c(1, 1, 1, 6), 
      col_two = c("bb", "aa", "aa", "bb")) 
d3 <- 
    data.frame(col_one = c(7, 1, 1, 4), 
      col_two = c("cc", "aa", "bb", "bb")) 
my.list <- list(d1, d2, d3) 

f <- function(table) { 
    table <- mapply(function(data, count) { 
    sql <- 
     sqldf(
     paste0(
      "select *,count(col_one) as count from data where col_one = ", 
      count, 
      " group by col_one,col_two" 
     ) 
    ) 
    }, my.list, 1, 
    SIMPLIFY = FALSE) 
    print(table) 

    return (table) 
} 


f(table = my.list) 

f2 <- function(table) { 
    num <- length(table) 
    chart <- vector(num, mode = "list") 
    plotly <- vector(num, mode = "list") 

    for (i in 1:length(table)) { 
    chart[[i]] <- ggplot(data = table[[i]], 
         aes(x = col_two, 
          y = count, 
          fill = col_two)) + 
     geom_bar(stat = "identity", width = 0.3) 

    #print(chart[[2]]) 

    plotly[[i]] <- ggplotly(chart[[i]]) 

    } 
    return(plotly) 
} 
f2(f(table = my.list)) 

save <- function (gg) { 
    num <- length(gg) 
    print_gg <- vector(num, mode = "list") 
    dir <- "~/test/aa" 

    for (i in 1:length(gg)) { 
    path <- paste0(dir, i) 

    htmltools::browsable(gg[[i]]) 
    htmltools::save_html(gg[[i]],path) 

    #htmlwidgets::saveWidget(print(gg[[i]]), path) 
    } 
} 

save(f2(f(table = my.list))) 

我也搜查了这段代码,但我只是想改变宽度和高度。 我必须首先打包小部件吗?有没有简单的方法来改变宽度和高度?

htmlwidgets::createWidget(
    "sigma", 
    x, 
    width = width, 
    height = height, 
    sizingPolicy = htmlwidgets::sizingPolicy(
    viewer.padding = 0, 
    viewer.paneHeight = 500, 
    browser.fill = TRUE 
) 
) 

如果我改变ggplot在我要补充的宽度或高度的图表ggplotly?有没有简单的方法来改变宽度和高度?

回答

0

我不是很确定这是你想要的,但这里是我的看法:

使用您的例子中,你创建一个ggplot2图形,然后把它变成一个plotly对象。

gg <- ggplot(mtcars, aes(x=wt, y=mpg)) + 
      geom_point(size=2, shape=23) + theme_bw(base_size = 10) 

g <- ggplotly(gg) 

要更改您的图形的大小,做你通常会与plotly做。

m <- list(
    l = 50, 
    r = 50, 
    b = 100, 
    t = 100, 
    pad = 4 
) 

h <- g %>% 
layout(autosize = F, width = 500, height = 500, margin = m) 

,然后你可以保存为HTML文件:

htmltools::save_html(h,"index.html") 
相关问题