Basic Bar Chart
library(plotly)fig<-plot_ly(x=c("giraffes","orangutans","monkeys"),y=c(20,14,23),name="SF Zoo",type="bar")figGrouped Bar Chart
library(plotly)Animals<-c("giraffes","orangutans","monkeys")SF_Zoo<-c(20,14,23)LA_Zoo<-c(12,18,29)data<-data.frame(Animals,SF_Zoo,LA_Zoo)fig<-plot_ly(data,x=~Animals,y=~SF_Zoo,type='bar',name='SF Zoo')fig<-fig%>%add_trace(y=~LA_Zoo,name='LA Zoo')fig<-fig%>%layout(yaxis=list(title='Count'),barmode='group')figStacked Bar Chart
library(plotly)Animals<-c("giraffes","orangutans","monkeys")SF_Zoo<-c(20,14,23)LA_Zoo<-c(12,18,29)data<-data.frame(Animals,SF_Zoo,LA_Zoo)fig<-plot_ly(data,x=~Animals,y=~SF_Zoo,type='bar',name='SF Zoo')fig<-fig%>%add_trace(y=~LA_Zoo,name='LA Zoo')fig<-fig%>%layout(yaxis=list(title='Count'),barmode='stack')figBar Chart with Hover Text
library(plotly)x<-c('Product A','Product B','Product C')y<-c(20,14,23)text<-c('27% market share','24% market share','19% market share')data<-data.frame(x,y,text)fig<-plot_ly(data,x=~x,y=~y,type='bar',text=text,marker=list(color='rgb(158,202,225)',line=list(color='rgb(8,48,107)',width=1.5)))fig<-fig%>%layout(title="January 2013 Sales Report",xaxis=list(title=""),yaxis=list(title=""))figBar Chart with Direct Labels
library(plotly)x<-c('Product A','Product B','Product C')y<-c(20,14,23)text<-c('27% market share','24% market share','19% market share')data<-data.frame(x,y,text)fig<-plot_ly(data,x=~x,y=~y,type='bar',text=y,textposition='auto',marker=list(color='rgb(158,202,225)',line=list(color='rgb(8,48,107)',width=1.5)))fig<-fig%>%layout(title="January 2013 Sales Report",xaxis=list(title=""),yaxis=list(title=""))figGrouped Bar Chart with Direct Labels
library(plotly)x<-c('Product A','Product B','Product C')y<-c(20,14,23)y2<-c(16,12,27)text<-c('27% market share','24% market share','19% market share')data<-data.frame(x,y,y2,text)fig<-data%>%plot_ly()fig<-fig%>%add_trace(x=~x,y=~y,type='bar',text=y,textposition='auto',marker=list(color='rgb(158,202,225)',line=list(color='rgb(8,48,107)',width=1.5)))fig<-fig%>%add_trace(x=~x,y=~y2,type='bar',text=y2,textposition='auto',marker=list(color='rgb(58,200,225)',line=list(color='rgb(8,48,107)',width=1.5)))fig<-fig%>%layout(title="January 2013 Sales Report",barmode='group',xaxis=list(title=""),yaxis=list(title=""))figRotated Bar Chart Labels
library(plotly)x<-c('January','February','March','April','May','June','July','August','September','October','November','December')y1<-c(20,14,25,16,18,22,19,15,12,16,14,17)y2<-c(19,14,22,14,16,19,15,14,10,12,12,16)data<-data.frame(x,y1,y2)#The default order will be alphabetized unless specified as below:data$x<-factor(data$x,levels=data[["x"]])fig<-plot_ly(data,x=~x,y=~y1,type='bar',name='Primary Product',marker=list(color='rgb(49,130,189)'))fig<-fig%>%add_trace(y=~y2,name='Secondary Product',marker=list(color='rgb(204,204,204)'))fig<-fig%>%layout(xaxis=list(title="",tickangle=-45),yaxis=list(title=""),margin=list(b=100),barmode='group')figCustomizing Bar Color
library(plotly)x<-c('Feature A','Feature B','Feature C','Feature D','Feature E')y<-c(20,14,23,25,22)data<-data.frame(x,y)fig<-plot_ly(data,x=~x,y=~y,type='bar',color=I("black"))fig<-fig%>%layout(title="Features",xaxis=list(title=""),yaxis=list(title=""))figCustomizing Individual Bar Colors
library(plotly)x<-c('Feature A','Feature B','Feature C','Feature D','Feature E')y<-c(20,14,23,25,22)data<-data.frame(x,y)fig<-plot_ly(data,x=~x,y=~y,type='bar',marker=list(color=c('rgba(204,204,204,1)','rgba(222,45,38,0.8)','rgba(204,204,204,1)','rgba(204,204,204,1)','rgba(204,204,204,1)')))fig<-fig%>%layout(title="Least Used Features",xaxis=list(title=""),yaxis=list(title=""))figCustomizing Individual Bar Widths
library(plotly)x=c(1,2,3,5.5,10)y=c(10,8,6,4,2)width=c(0.8,0.8,0.8,3.5,4)data<-data.frame(x,y,width)fig<-plot_ly(data)fig<-fig%>%add_bars(x=~x,y=~y,width=~width)figCustomizing Individual Bar Base
library(plotly)fig<-plot_ly()fig<-fig%>%add_bars(x=c("2016","2017","2018"),y=c(500,600,700),base=c(-500,-600,-700),marker=list(color='red'),name='expenses')fig<-fig%>%add_bars(x=c("2016","2017","2018"),y=c(300,400,700),base=0,marker=list(color='blue'),name='revenue')figMapping a Color Variable
library(plotly)library(dplyr)fig<-ggplot2::diamondsfig<-fig%>%count(cut,clarity)fig<-fig%>%plot_ly(x=~cut,y=~n,color=~clarity)figColored and Styled Bar Chart
library(plotly)x<-c(1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012)roW<-c(219,146,112,127,124,180,236,207,236,263,350,430,474,526,488,537,500,439)China<-c(16,13,10,11,28,37,43,55,56,88,105,156,270,299,340,403,549,499)data<-data.frame(x,roW,China)fig<-plot_ly(data,x=~x,y=~roW,type='bar',name='Rest of the World',marker=list(color='rgb(55, 83, 109)'))fig<-fig%>%add_trace(y=~China,name='China',marker=list(color='rgb(26, 118, 255)'))fig<-fig%>%layout(title='US Export of Plastic Scrap',xaxis=list(title="",tickfont=list(size=14,color='rgb(107, 107, 107)')),yaxis=list(title='USD (millions)',titlefont=list(size=16,color='rgb(107, 107, 107)'),tickfont=list(size=14,color='rgb(107, 107, 107)')),legend=list(x=0,y=1,bgcolor='rgba(255, 255, 255, 0)',bordercolor='rgba(255, 255, 255, 0)'),barmode='group',bargap=0.15,bargroupgap=0.1)figWaterfall Bar Chart
library(plotly)x<-c('Product<br>Revenue','Services<br>Revenue','Total<br>Revenue','Fixed<br>Costs','Variable<br>Costs','Total<br>Costs','Total')y<-c(400,660,660,590,400,400,340)base<-c(0,430,0,570,370,370,0)revenue<-c(430,260,690,0,0,0,0)costs<-c(0,0,0,120,200,320,0)profit<-c(0,0,0,0,0,0,370)text<-c('$430K','$260K','$690K','$-120K','$-200K','$-320K','$370K')data<-data.frame(x,base,revenue,costs,profit,text)#The default order will be alphabetized unless specified as below:data$x<-factor(data$x,levels=data[["x"]])fig<-plot_ly(data,x=~x,y=~base,type='bar',marker=list(color='rgba(1,1,1, 0.0)'))fig<-fig%>%add_trace(y=~revenue,marker=list(color='rgba(55, 128, 191, 0.7)',line=list(color='rgba(55, 128, 191, 0.7)',width=2)))fig<-fig%>%add_trace(y=~costs,marker=list(color='rgba(219, 64, 82, 0.7)',line=list(color='rgba(219, 64, 82, 1.0)',width=2)))fig<-fig%>%add_trace(y=~profit,marker=list(color='rgba(50, 171, 96, 0.7)',line=list(color='rgba(50, 171, 96, 1.0)',width=2)))fig<-fig%>%layout(title='Annual Profit - 2015',xaxis=list(title=""),yaxis=list(title=""),barmode='stack',paper_bgcolor='rgba(245, 246, 249, 1)',plot_bgcolor='rgba(245, 246, 249, 1)',showlegend=FALSE)fig<-fig%>%add_annotations(text=text,x=x,y=y,xref="x",yref="y",font=list(family='Arial',size=14,color='rgba(245, 246, 249, 1)'),showarrow=FALSE)figHorizontal Bar Chart
See examples of horizontal bar charts here.
Reference
See https://plotly.com/r/reference/#bar for more information and chart attribute options!
What About Dash?
Dash for R is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.
Learn about how to install Dash for R at https://dashr.plot.ly/installation.
Everywhere in this page that you see fig, you can display the same figure in a Dash for R application by passing it to the figure argument of the Graph component from the built-in dashCoreComponents package like this:
library(plotly)fig<-plot_ly()# fig <- fig %>% add_trace( ... )# fig <- fig %>% layout( ... ) library(dash)library(dashCoreComponents)library(dashHtmlComponents)app<-Dash$new()app$layout(htmlDiv(list(dccGraph(figure=fig))))app$run_server(debug=TRUE,dev_tools_hot_reload=FALSE)