2017-06-05 125 views
0

我在试图建立一个带有对数轴的条形图图表,但我希望酒吧从一个而不是零开始。到目前为止,我有一个基本的条形图,酒吧从1开始而不是0

df <- data.frame(Categ=c("a","b","a","a","b"),Num=c(1,2,3,4,5),Value=c(1.56,0.85,10.6,8.9,32.8)) 
plot_ly(data=df,x=~Num,y=~Value,type="bar",color=~Categ) %>% 
layout(yaxis=list(exponentformat='power',type='log',title=ylab),legend=list(orientation='h')) 

等等应有尽有,从1,我可以添加白条:

plot_ly(data=df,x=~Num,y=~rep(1,5),type="bar",opacity=0.0,showlegend=FALSE) %>% 
add_trace(y=~(Value-1),opacity=1.0,color=~Categ,showlegend=TRUE) %>% 
layout(yaxis=list(exponentformat='power',type='log'),legend=list(orientation='h'),barmode='stack') 

这里的问题是,如果你双击的传说,只显示类别b则白条也消失,低于1的任何值都消失。 我想知道是否有任何更好的解决方案来解决这个问题,或者让白色条成为永久性的方法,因此始终显示小于1的值。

+0

由于y轴没有零点,因此Barplot和对数刻度没有多大意义。根据您开始图形的接近零的程度,相对的高度可能会变形。 – Dave2e

回答

1

我找到了一个解决方法,扫描完一堆文件后... https://plot.ly/r/reference/ 如果您使用base命令,它会将base设置为任何您需要的值。

plot_ly(data=df,x=~Num,y=~(Value-1),base=1,type="bar",color=~Categ,showlegend=TRUE) %>% 
layout(yaxis=list(exponentformat='power',type='log'),legend=list(orientation='h')) 
相关问题