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)
ploty中没有称为bar size的选项,但您可以在布局中使用bargap选项。
是的,您需要设置
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")))
我也找不到答案,但我找到了一个替代解决方案,那就是使用点图,而不是条形图。
如果您想更改条形的宽度,只需在
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)