首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >向绘图条形图添加水平线

向绘图条形图添加水平线
EN

Stack Overflow用户
提问于 2019-03-15 03:12:18
回答 1查看 4.2K关注 0票数 6

我正在尝试使用R plotlybar类型的绘图来生成一个水平布局的方框图,并在其背景中添加一条水平线(而不是在它们的顶部)。另外,我希望这条线在每个方向上对称地延伸一个方框单元。

这就是我要做的:

plot.df <- data.frame(x = paste0("LONG NAME ",1:6),y = 0.2,width=0.75,group = c("A","B","B","B","C","A"),stringsAsFactors = F)
plot.df$group <- factor(plot.df$group)


plotly::plot_ly(plot.df) %>%
  plotly::add_trace(x=~x,y=~y/2,type='scatter',mode='lines',line=list(color='black'),showlegend=F) %>%
  plotly::add_bars(x=~x,y=~y,width=~width,color=~group) %>%
  plotly::layout(xaxis=list(title=NA,zeroline=F,tickangle=45),yaxis=list(title=NA,zeroline=F,showgrid=F,range=c(0,1),showticklabels=F))

这就给出了:

我的问题是:

  1. 如何在两个方向上延伸线条
  2. 如何将线条放在背景中,这样它就不会超过方框,我指定plot.df$y为0.2,但yaxis范围为c(0,1),这样方框看起来不像长条。但是,传说看起来太高了。有没有更好的方法让方框的图例看起来比现在更低?--
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-15 04:15:54

对于水平线,您可以看到Horizontal/Vertical Line in plotly

使用

layout(legend =list(x = 1 ,y =0 ))

你可以解决图例问题

我不能解决你的第二点(把横杆放在背景中)。我希望它能有所帮助:

hline <- function(y = 0, color = "blue") {
  list(
    type = "line", 
    x0 = 0, 
    x1 = 1, 
    xref = "paper",
    y0 = y, 
    y1 = y, 
    line = list(color = color)
  )
}

plot_ly(plot.df) %>%
  add_bars(x=~x,y=~y,width=~width,color=~group, hoverinfo = "text") %>%
  layout(shapes = list(hline(0.1)))%>%
  layout(legend =list(x = 1 ,y =0 ))%>%
  layout(xaxis=list(title=NA,zeroline=F,tickangle=45),yaxis=list(title=NA,zeroline=F,showgrid=F,range=c(0,1),showticklabels=F))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55170349

复制
相关文章

相似问题

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