Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Using googleVis via R provides lots of options to create nice google visualizations. I was trying to create some charts while exploring the Annual Nominal Fish Catches Data on Kaggle. I wanted to create a line motion chart and exclude the default bubble chart. So I played with the options to get the desired result. The following is a quick explanation of how to do that.
< !-- divChart -->
|
< !-- divChart -->
|
Fish Catches Dataset
The dataset provides the annual TLW (tonnes live weight) catches of fish and shellfish in the Northeast Atlantic region. The original data, after cleaning, is in a wide format as follows:
## Species Area Units Country 2014 2013 2012 2011 2010 2009 2008 2007 ## 1 ANF 27 TLW BE 993 1633 1716 1279 1031 853 964 1363 ## 2 ANF 27.4 TLW BE 217 137 133 116 131 140 185 181 ## 3 ANF 27.4.A TLW BE 0 0 0 0 0 0 0 0 ## 2006 ## 1 1193 ## 2 141 ## 3 0
Since gvisMotionChart() requires a time variable, I melted the dataframe to convert it to a long format as follows:
## Species Area Units Code Year Quantity Country ## 1 ANF 27 TLW BE 2014 993 Belgium ## 2 ANF 27.4 TLW BE 2014 217 Belgium ## 3 ANF 27.4.A TLW BE 2014 0 Belgium
Then I wanted to plot the annual fish catch per country and also per species, so I calculated the annual sums and got the following:
Annual Fish Catch per Country
## Source: local data frame [216 x 3] ## Groups: Year [9] ## ## Year Country TLW ## (dbl) (chr) (int) ## 1 2006 Belgium 67564 ## 2 2006 Denmark 2680872 ## 3 2006 Estonia 296160 ## 4 2006 Faroe Islands 2597422 ## 5 2006 Finland 451731 ## 6 2006 France 1310819 ## 7 2006 Germany 884707 ## 8 2006 Greenland 150961 ## 9 2006 Iceland 5353078 ## 10 2006 Ireland 698563 ## .. ... ... ...
Annual Fish Catch per Species
## Source: local data frame [8,181 x 3] ## Groups: Year [9] ## ## Year Species TLW ## (dbl) (chr) (int) ## 1 2006 AAS 0 ## 2 2006 ABK 0 ## 3 2006 ABX 20 ## 4 2006 ABZ 0 ## 5 2006 ACC 8 ## 6 2006 ACH 0 ## 7 2006 AES 0 ## 8 2006 AGD 0 ## 9 2006 AGK 15 ## 10 2006 AGN 0 ## .. ... ... ...
googleVis Line Motion Chart Options
The default gvisMotionChart requires a dataframe with at least four columns: subject name (idvar), time (timevar) and two columns of numeric values. This is mainly for the bubble chart, which does not work properly with three columns. But since the line/bar charts can be used with 3 columns, I could use it with my summarized data. But I wanted, first to set the default view to line chart., and second to ** hide the tabs of the other charts**.
To achieve these two features, I played with the options of gvisMotionChart as follows:
-
To view the the line chart by default, I set “iconType”:”LINE” in State; which is passed to the function.
-
To hide the other charts, I set showChartButtons=F
I also wanted to have unique colors for the lines in the initial view, so I set “colorOption”:”_UNIQUE_COLOR” .
And that’s how I got a line motion chart.
#set state options to pass to gvisMotionChart State<-' {"yLambda":1,"showTrails":false,"xAxisOption":"_TIME", "xZoomedDataMin":1136073600000, "orderedByY":false,"playDuration":15000, "nonSelectedAlpha":0.4,"xZoomedIn":false,"xLambda":1, "colorOption":"_UNIQUE_COLOR", "iconKeySettings":[], "xZoomedDataMax":1388534400000, "dimensions":{"iconDimensions":["dim0"]}, "sizeOption":"_UNISIZE","yZoomedIn":false, "uniColorForNonSelected":false,"time":"2014", "yZoomedDataMax":10000000, "iconType":"LINE", "duration":{"timeUnit":"Y","multiplier":1}, "yAxisOption":"2","yZoomedDataMin":0,"orderedByX":false} ' #create the country chart CountryChart = gvisMotionChart(datm.country, "Country", "Year", options = list(showChartButtons=F, state=State)) #create the species chart SpeciesChart= gvisMotionChart(datm.species, "Species", "Year", options = list(showChartButtons=F, state=State)) #Plot the 2 charts BothCharts<-gvisMerge(CountryChart,SpeciesChart) #remove caption BothCharts$html$caption="" plot(BothCharts)
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.