dan*_*dan 5 r bar-chart plotly
我正在尝试使用R plotly'sbar type plot 生成一个带有水平布局框的图,并在其背景中添加一条水平线(而不是在它们之上)。此外,我希望这条线在每个方向上对称地延伸一个盒子单元。
这是我在做什么:
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))
Run Code Online (Sandbox Code Playgroud)
这使:
我的问题是:
plot.df$y为 0.2 但yaxis范围c(0,1)要使框看起来不像长条。但随后传说就显得太高了。有什么更好的方法可以让方块的图例看起来比现在低?小智 3
对于水平线,您可以在图中查看水平/垂直线
和
layout(legend =list(x = 1 ,y =0 ))
Run Code Online (Sandbox Code Playgroud)
你可以解决图例问题
我无法解决你的第二点(将栏放在后台)。我希望它有帮助:
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))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3856 次 |
| 最近记录: |