Line Chart using plotly library
Parag Verma
Introduction
In this blog, we will look at how to create a simple line chart using plotly library
Installing libraries
Lets install plotly and other libraries used to create the plot
package.name<-c("dplyr","tidyr","Ecdat","plotly")
for(i in package.name){
if(!require(i,character.only = T)){
install.packages(i)
}
library(i,character.only = T)
}
# Ecdat package has the 'Health Insurance and Hours Worked By Wives' data
data(HI)
df<-HI
head(df)
whrswk hhi whi hhi2 education race hispanic experience kidslt6 kids618
1 0 no no no 13-15years white no 13.0 2 1
2 50 no yes no 13-15years white no 24.0 0 1
3 40 yes no yes 12years white no 43.0 0 0
4 40 no yes yes 13-15years white no 17.0 0 1
5 0 yes no yes 9-11years white no 44.5 0 0
6 40 yes yes yes 12years white no 32.0 0 0
husby region wght
1 11.960 northcentral 214986
2 1.200 northcentral 210119
3 31.275 northcentral 219955
4 9.000 northcentral 210317
5 0.000 northcentral 219955
6 15.690 northcentral 208148
Step 1:Average experience for different levels of education
interim.df<-df%>%
group_by(education)%>%
summarise(MeanExperience=mean(experience))
interim.df
# A tibble: 6 x 2
education MeanExperience
<ord> <dbl>
1 <9years 32.0
2 9-11years 27.7
3 12years 25.0
4 13-15years 20.4
5 16years 18.2
6 >16years 19.3
Step 2:Initialising the plotly object
# For font
t = list(family = "Georgia",color = 'black')
line_chrt <- interim.df %>% plot_ly(x = ~education, y = ~MeanExperience, type = 'scatter', mode = 'lines',
textposition = 'inside',
text = ~paste(interim.df$MeanExperience),
textinfo = 'text',
insidetextfont = list(color = '#FFFFFF'),
hovertemplate = paste(round(interim.df$MeanExperience,2),'<extra></extra>'),
marker = list(colors = colors,
line = list(color = '#FFFFFF', width = 1)),
#The 'pull' attribute can also be used to create space between the sectors
showlegend = TRUE,width = 500)
line_chrt
Warning: `arrange_()` is deprecated as of dplyr 0.7.0.
Please use `arrange()` instead.
See vignette('programming') for more help
This warning is displayed once every 8 hours.
Call `lifecycle::last_warnings()` to see where this warning was generated.
A marker object has been specified, but markers is not in the mode
Adding markers to the mode...
Warning: 'scatter' objects don't have these attributes: 'textinfo', 'insidetextfont'
Valid attributes include:
'type', 'visible', 'showlegend', 'legendgroup', 'opacity', 'name', 'uid', 'ids', 'customdata', 'meta', 'selectedpoints', 'hoverinfo', 'hoverlabel', 'stream', 'transforms', 'uirevision', 'x', 'x0', 'dx', 'y', 'y0', 'dy', 'stackgroup', 'orientation', 'groupnorm', 'stackgaps', 'text', 'texttemplate', 'hovertext', 'mode', 'hoveron', 'hovertemplate', 'line', 'connectgaps', 'cliponaxis', 'fill', 'fillcolor', 'marker', 'selected', 'unselected', 'textposition', 'textfont', 'r', 't', 'error_x', 'error_y', 'xcalendar', 'ycalendar', 'xaxis', 'yaxis', 'idssrc', 'customdatasrc', 'metasrc', 'hoverinfosrc', 'xsrc', 'ysrc', 'textsrc', 'texttemplatesrc', 'hovertextsrc', 'hovertemplatesrc', 'textpositionsrc', 'rsrc', 'tsrc', 'key', 'set', 'frame', 'transforms', '_isNestedKey', '_isSimpleKey', '_isGraticule', '_bbox'
Link to Previous R Blogs
List of Datasets for Practise
https://hofmann.public.iastate.edu/data_in_r_sortable.html
https://vincentarelbundock.github.io/Rdatasets/datasets.html