如何固定plotly R中条形的宽度

问题描述 投票:0回答:4

Plotly 是 R 中最有用的绘图包之一,但我面临着一个非常基本的问题。

当我绘制条形图时,它在小屏幕上看起来还不错,但是一旦我调整窗口大小,它就会覆盖整个窗口,使其变得丑陋。

由于我的要求是动态的,绘图上的条形数量会发生变化,但我想保持条形宽度看起来合适。

但是当它调整大小时

我用来绘制条形图的代码很简单,我希望不需要解释。宽度选项不会对图表产生任何影响。

我错过了什么吗?

 ds <- as.data.frame(matrix(c('some_name',2300),nrow = 1,ncol=2))
colnames(ds) <- c('name','value')

plot_ly(ds,x=name,y=value,type='bar') %>% layout(width = 0.1)
r plot ggplot2 plotly
4个回答
2
投票

ploty中没有称为bar size的选项,但您可以在布局中使用bargap选项。


1
投票

是的,您需要设置

autosize=F
。所以正确的应该是:

plot_ly(ds,x=name,y=value,type='bar') %>% layout(width = 100, autosize=F)

另一个选项是在

plotlyOutput
中设置宽度和高度(保留
autosize=T
):
plotlyOutput("plot", height="700px", width="200px")))


0
投票

我也找不到答案,但我找到了一个替代解决方案,那就是使用点图,而不是条形图。

参见:https://plot.ly/r/dot-plots/


0
投票

如果您想更改条形的宽度,只需在

width
add_trace
 中使用 
add_bars

参数即可
ds <- data.frame(name = "some_name", value = 2300)
plot_ly(ds) |>
  add_trace(x=~name, y=~value, type = 'bar', width = .1)

如果您想更改绘图本身的宽度,请在

width
函数中添加
plot_ly

ds <- data.frame(name = "some_name", value = 2300)

plot_ly(ds, width = 200) |>
  add_bars(x=~name, y=~value, type = 'bar', width = .1)
© www.soinside.com 2019 - 2024. All rights reserved.