簡體   English   中英

向可繪制的條形圖添加水平線

[英]Adding a horizontal line to a plotly bar graph

我正在嘗試使用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. 如何將線置於背景中,使其不會越過框
  3. 我指定plot.df$y為0.2,但yaxis的范圍是c(0,1)這樣的箱子看上去並不像長條。 但隨后傳說就顯得太高了。 有什么更好的方法可以讓方塊的圖例看起來比現在低?

對於水平線,您可以在 plotly 中看到Horizo​​ntal/Vertical Line

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM