26

I am using Google Motion Chart with Shiny R and I am not able to edit some of the basic things. I am new to Shiny R and already started loving it. Here is my code:

ui.R

 library(shiny)
    shinyUI((
    mainPanel( 
        h4("Interactive Analytics"),
        htmlOutput("view_gviz")
    )
 ))

shiny.R

 library(shiny)
 library(googleVis)     
 sample_data <- structure(list(YEAR = c(2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2001L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2002L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L, 2003L), STORM = structure(c(3L, 9L, 16L, 25L, 36L, 40L, 46L, 58L, 64L, 70L, 75L, 86L, 91L, 97L, 100L, 8L, 10L, 22L, 29L, 32L, 39L, 52L, 53L, 67L, 72L, 80L, 84L, 5L, 13L, 20L, 24L, 35L, 38L, 51L, 56L, 66L, 73L, 77L, 81L, 92L, 95L, 99L, 106L), .Label = c("alberto", "alex", "allison", "alpha", "ana", "andrea", "arlene", "arthur", "barry", "bertha", "beryl", "beta", "bill", "bonnie", "bret", "chantal", "charley", "chris", "cindy", "claudette", "colin", "cristobal", "danielle", "danny", "dean", "debby", "delta", "dennis", "dolly", "don", "earl", "edouard", "emily", "epsilon", "erika", "erin", "ernesto", "fabian", "fay", "felix", "fiona", "florence", "frances", "franklin", "fred", "gabrielle", "gamma", "gaston", "gert", "gordon", "grace", "gustav", "hanna", "harvey", "helene", "henri", "hermine", "humberto", "ida", "igor", "ike", "ingrid", "irene", "iris", "isaac", "isabel", "isidore", "ivan", "jeanne", "jerry", "jose", "josephine", "juan", "julia", "karen", "karl", "kate", "katia", "katrina", "kyle", "larry", "laura", "lee", "lili", "lisa", "lorenzo", "marco", "maria", "matthew", "melissa", "michelle", "mindy", "nana", "nate", "nicholas", "nicole", "noel", "not named", "odette", "olga", "omar", "ophelia", "otto", "paloma", "paula", "peter", "philippe", "richard", "rina", "rita", "sean", "shary", "stan", "subtrop", "tammy", "tomas", "unnamed", "vince", "wilma", "zeta"), class = "factor"), MAX_PRESSURE = c(1012L, 1018L, 1012L, 1013L, 1015L, 1009L, 1010L, 1012L, 1011L, 1008L, 1009L, 1010L, 1006L, 1000L, 1006L, 1009L, 1013L, 1008L, 1009L, 1013L, 1009L, 1009L, 1014L, 1009L, 1016L, 1012L, 1009L, 1008L, 1009L, 1016L, 1024L, 1011L, 1009L, 1013L, 1013L, 1009L, 1009L, 1008L, 1009L, 1008L, 1014L, 1006L, 1009L), AVERAGE_PRESSURE = c(1006.05, 1006.37, 1006.78, 1005.37, 991, 991.32, 992.04, 993, 991.09, 1006.79, 992.15, 1008.5, 979.27, 991.25, 992.82, 1000.29, 1010.85, 1002.3, 1002.73, 1007.25, 1005.4, 983.81, 1003.86, 984.83, 1010.44, 1001.45, 992.67, 1001.64, 1006.14, 1002.25, 1014.29, 1001.7, 965.33, 1009.5, 1005.42, 955.5, 986.57, 984.46, 1002.58, 1006.5, 1004.62, 1000.4, 1002.13), MIN_PRESSURE = c(1000L, 990L, 997L, 994L, 968L, 962L, 975L, 970L, 948L, 1004L, 982L, 1007L, 934L, 986L, 973L, 992L, 1008L, 999L, 997L, 1002L, 998L, 960L, 1001L, 934L, 1004L, 980L, 940L, 994L, 997L, 982L, 1000L, 988L, 939L, 1007L, 997L, 915L, 969L, 952L, 993L, 1002L, 990L, 993L, 990L),     MAX_WIND_SPEED = c(60L, 70L, 70L, 70L, 120L, 115L, 80L, 105L,     145L, 50L, 80L, 40L, 140L, 75L, 90L, 60L, 40L, 50L, 60L,     65L, 60L, 100L, 60L, 125L, 60L, 85L, 145L, 60L, 60L, 85L,     75L, 75L, 145L, 40L, 60L, 165L, 105L, 125L, 65L, 45L, 70L,     65L, 70L), AVERAGE_WIND_SPEED = c(30.72, 36.45, 47.65, 44.48,     64.67, 62.6, 58.53, 69.23, 73.8, 42, 62.1, 36.87, 77.72,     62.5, 55.63, 47, 26, 43.07, 44.61, 37.25, 25.21, 56.48, 42,     61.03, 40.55, 48.46, 61.05, 43.12, 35.25, 54.88, 39.65, 52,     100.47, 30.41, 35.47, 115.43, 74.04, 73.1, 39.63, 37.85,     41.12, 50.9, 45), MIN_WIND_SPEED = c(15L, 10L, 30L, 30L,     15L, 30L, 30L, 30L, 30L, 30L, 35L, 35L, 35L, 50L, 30L, 35L,     15L, 35L, 25L, 25L, 0L, 25L, 25L, 25L, 35L, 30L, 30L, 0L,     25L, 30L, 25L, 30L, 30L, 15L, 30L, 30L, 30L, 35L, 15L, 30L,     25L, 35L, 35L), MAX_STORM_MOVEMENT_SPEED = c(31L, 13L, 37L,     37L, 36L, 23L, 37L, 32L, 21L, 23L, 48L, 32L, 35L, 23L, 20L,     39L, 11L, 23L, 23L, 12L, 17L, 46L, 14L, 57L, 36L, 24L, 28L,     34L, 24L, 31L, 21L, 26L, 48L, 25L, 18L, 47L, 44L, 56L, 10L,     14L, 23L, 36L, 24L), AVERAGE_STORM_MOVEMENT_SPEED = c(7.85,     6.86, 19.12, 17.82, 13.93, 11.22, 14.8, 13.16, 18.14, 18.88,     14, 13.59, 8.87, 11.18, 8.43, 21.89, 5.36, 5.58, 12.83, 4.89,     4.54, 18.61, 7.85, 11.94, 16.37, 6.97, 12.33, 14.64, 13.05,     14.59, 10.13, 18.55, 17.07, 11.81, 6.7, 12.19, 12.19, 17.61,     3.75, 9.38, 9.24, 17.14, 13.14), MIN_STORM_MOVEMENT_SPEED = c(1L,     2L, 3L, 0L, 3L, 1L, 2L, 8L, 13L, 10L, 5L, 4L, 1L, 1L, 1L,     5L, 2L, 3L, 0L, 0L, 2L, 8L, 3L, 2L, 5L, 1L, 3L, 4L, 3L, 2L,     3L, 13L, 6L, 6L, 2L, 5L, 2L, 5L, 0L, 5L, 1L, 4L, 3L), STORM_LENGTH = c(14L,     6L, 8L, 7L, 16L, 12L, 10L, 6L, 5L, 2L, 4L, 4L, 8L, 2L, 11L,     5L, 5L, 3L, 6L, 5L, 6L, 7L, 3L, 13L, 2L, 22L, 13L, 9L, 5L,     10L, 11L, 3L, 13L, 3L, 5L, 14L, 5L, 15L, 10L, 4L, 19L, 5L,     4L)), .Names = c("YEAR", "STORM", "MAX_PRESSURE", "AVERAGE_PRESSURE", "MIN_PRESSURE", "MAX_WIND_SPEED", "AVERAGE_WIND_SPEED", "MIN_WIND_SPEED", "MAX_STORM_MOVEMENT_SPEED", "AVERAGE_STORM_MOVEMENT_SPEED", "MIN_STORM_MOVEMENT_SPEED", "STORM_LENGTH"), row.names = c(NA, 43L), class = "data.frame")     
 shinyServer(function(input, output) {
        output$view_gviz <- renderGvis({
                                chart <- gvisMotionChart(sample_data,
                                        idvar="STORM", 
                                        timevar="YEAR",
                                        xvar="AVERAGE_WIND_SPEED", 
                                        yvar="AVERAGE_PRESSURE",
                                        colorvar="MAX_STORM_MOVEMENT_SPEED", 
                                        sizevar="STORM_LENGTH",
                                        options=list(width=1080, height=500, showChartButtons = FALSE)
                                        )
        })
 })

Now, here are the list of things that I am not able to do:

  1. I do want to put/edit the tooltips. I have seen one example in Gapminder site. I want to add tooltip over indicators on X-axis, Y-axis, colors and size.
  2. Remove the play button along with playback speed button. It does not sound good idea, but I do want to drag through the slider and no animation over time. It would make sense with full data.
  3. Zoom-in doesn't work with mouse click. We must press enter with keyboard to zoom. Do we have any workaround to fix this?
zx8754
  • 52,746
  • 12
  • 114
  • 209
Sabin
  • 11,662
  • 3
  • 25
  • 39
  • Did you ever figure out a way to do any of these? – aashanand Sep 22 '15 at 23:24
  • 1
    Unfortunately not. Thats why there is no answer so far. Otherwise I would have posted the answer myself. – Sabin Sep 22 '15 at 23:26
  • Have you considered putting a bounty on this question? Whoever knows how to replicate that Gapminder example deserves some serious reputation. – aashanand Sep 22 '15 at 23:28
  • Sounds like a good idea. Doing it right away. – Sabin Sep 22 '15 at 23:57
  • Zoom-in seems broken on my machine on Chrome (Windows, 46.0.2490.42 beta-m (64-bit)) only. Firefox & IE 11 work fine. Strangely enough, Opera, which is based on Chrome(ium) works fine too. No idea what causes it or how to fix though. – Peter Sep 28 '15 at 18:50

1 Answers1

1

Unfortunately, I don't think item 1 and 2 are supported by the Google API. Regarding 3, I think this depends on the Flash player you use. Chrome's build in Flash player has caused me issues in the past, while Adobe's Flash player seems to allow the zooming function.

The Google Chart API Forum might be the best place to ask such questions, as they are not directly related to R or shiny.

Markus
  • 56
  • 1