首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ggplotly()时换行轴标签

使用ggplotly()时换行轴标签
EN

Stack Overflow用户
提问于 2020-01-07 22:15:07
回答 2查看 405关注 0票数 0

我正在尝试使用ggplotly()创建水平条形图。因为标签很长,所以我插入了换行符<br>。当使用ggplotly()绘制数据时,标签确实是被包装的,但是标签左边有很大的空白处,基本上使包装变得无用。除了使用plot_ly()之外,还有什么方法可以解决这个问题吗

代码语言:javascript
复制
library(ggplot2)
library(plotly)

df <- data.frame(a = "A very long label<br>that needs<br>to be wrapped", b = 10)

ggplotly({
  ggplot(df, aes(a, b)) +
  geom_col() +
  coord_flip()
})

代码语言:javascript
复制
plot_ly(df, y = ~a, x = ~b, type = "bar", orientation = "h")

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-10 21:56:05

与@asafpr的答案类似,使用plotly::layout()调整左边距可以完成以下工作:

代码语言:javascript
复制
library(ggplot2)
library(plotly)

df <- data.frame(a = "A very long label<br>that needs<br>to be wrapped", b = 10)

p <- ggplot(df, aes(a, b)) +
  geom_col() +
  coord_flip()

ggploty(p) %>%
  layout(margin = list(l = 10))

有趣的是,传递给l的值似乎并不重要:

代码语言:javascript
复制
ggploty(p) %>%
  layout(margin = list(l = 10))

代码语言:javascript
复制
ggploty(p) %>%
  layout(margin = list(l = 1000))

票数 0
EN

Stack Overflow用户

发布于 2020-01-07 22:31:00

您可以在theme中使用plot.margin更改of图的边距

代码语言:javascript
复制
ggplotly({
     ggplot(df, aes(a, b)) +
         geom_col() +
         coord_flip() + theme(plot.margin = margin(0,0,0,-4, "cm"))
 })

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59630158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档