Editing Google motion chart
Asked Answered
S

1

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?
Shiflett answered 2/6, 2013 at 20:16 Comment(5)
Did you ever figure out a way to do any of these?Obelia
Unfortunately not. Thats why there is no answer so far. Otherwise I would have posted the answer myself.Shiflett
Have you considered putting a bounty on this question? Whoever knows how to replicate that Gapminder example deserves some serious reputation.Obelia
Sounds like a good idea. Doing it right away.Shiflett
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.Irisirisa
H
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.

Helfant answered 29/9, 2015 at 20:23 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.