Q1

Use mpg data set from ggplot2 to create a static visualization and then use ggplotly() to create a limited interactive plot.

map = ggplot(mpg, aes(
      x= cty, 
      y= hwy, 
      color = class)) +
  geom_point(aes(frame = class)) +
      theme(legend.position = "none")
ggplotly(map)

Q2

For this visualization you will use plot_ly() function. To create this plot, we will use economics data set from ggplot2.

economics %>%
  plot_ly(x= ~ date,
          y= ~ unemploy,
          type = 'scatter', 
          mode = 'lines') %>%
  layout(xaxis = list(title = "Date"),
         yaxis = list(title = "Unemployment in '000"),
         title = 
        "Unemployment peaked after the financial crisis")

As an aside, the Y axis in this line graph doesn’t start from 0, which is commonly frowned upon. There is usually no hard and fast rule about this but generally if you are just interested in the trend, truncating the Y axis is OK.

Q3

Use mpg data and hchart() function. We want to create a heatmap of average highway mileage for different class and cyl.

car = mpg %>%
  filter(cyl != 5, 
         class != "2seater") %>%
  group_by(class, cyl) %>%
  summarise(hwy = mean(hwy))
`summarise()` has grouped output by 'class'. You can override using the `.groups` argument.
car$cyl = as.character(car$cyl)
hchart(car, "heatmap", hcaes(
    x= class, 
    y=cyl, 
    value = hwy)) %>%
  hc_yAxis(title = list(
    text = "as.character,cyl"))

Q4

For this example, use a randomly selected subset of diamonds data set from ggplot2. Next use d1 to create the following plot.

set.seed(2020)
d1 <- diamonds[sample(nrow(diamonds), 1000),]
hchart(d1, "scatter", hcaes(
    x= carat, 
    y= price, 
    group = clarity))%>%
  hc_yAxis(title = list(
    text = "Price of Diamonds"))%>%
  hc_xAxis(title = list(
    text = "Weight of Diamonds in Carats")) %>%
  hc_title(
    text = "Variation in Diamond Prices Increases with Carats"
    ) %>%
  hc_add_theme(hc_theme_flat())

Q5

Recreate the plot in Q2 using hchart().

hchart(economics, "line", hcaes(
    x= date, 
    y= unemploy), 
    name = "Unemployment") %>%
  hc_xAxis(
    title = list(text = "Date")) %>%
  hc_yAxis(
    title = list(text = "Unemployment in '000")) %>%
  hc_title(
    text = "Unemployment peaked after the financial crisis" 
    ) %>%
  hc_add_theme(hc_theme_chalk()) %>%
hc_tooltip(backgroundColor = rgb(51/256, 51/256, 51/256, 0.9))
LS0tDQp0aXRsZTogIlBsb3RseSBhbmQgSGlnaGNoYXJ0ZXIiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShwbG90bHkpDQpsaWJyYXJ5KGhpZ2hjaGFydGVyKQ0KdGhlbWVfc2V0KHRoZW1lX21pbmltYWwoKSkNCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQoNCiMjIFExIA0KDQpVc2UgYG1wZ2AgZGF0YSBzZXQgZnJvbSBgZ2dwbG90MmAgdG8gY3JlYXRlIGEgc3RhdGljIHZpc3VhbGl6YXRpb24gYW5kIHRoZW4gdXNlIGBnZ3Bsb3RseSgpYCB0byBjcmVhdGUgYSBsaW1pdGVkIGludGVyYWN0aXZlIHBsb3QuDQoNCmBgYHtyIHdhcm5pbmc9RkFMU0UsIGZpZy53aWR0aD05fQ0KbWFwID0gZ2dwbG90KG1wZywgYWVzKA0KICAgICAgeD0gY3R5LCANCiAgICAgIHk9IGh3eSwgDQogICAgICBjb2xvciA9IGNsYXNzKSkgKw0KICBnZW9tX3BvaW50KGFlcyhmcmFtZSA9IGNsYXNzKSkgKw0KICAgICAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKQ0KZ2dwbG90bHkobWFwKQ0KYGBgDQoNCg0KIyMgUTIgDQoNCkZvciB0aGlzIHZpc3VhbGl6YXRpb24geW91IHdpbGwgdXNlIGBwbG90X2x5KClgIGZ1bmN0aW9uLiBUbyBjcmVhdGUgdGhpcyBwbG90LCB3ZSB3aWxsIHVzZSBgZWNvbm9taWNzYCBkYXRhIHNldCBmcm9tIGBnZ3Bsb3QyYC4NCg0KYGBge3Igd2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgZmlnLndpZHRoPTl9DQplY29ub21pY3MgJT4lDQogIHBsb3RfbHkoeD0gfiBkYXRlLA0KICAgICAgICAgIHk9IH4gdW5lbXBsb3ksDQogICAgICAgICAgdHlwZSA9ICdzY2F0dGVyJywgDQogICAgICAgICAgbW9kZSA9ICdsaW5lcycpICU+JQ0KICBsYXlvdXQoeGF4aXMgPSBsaXN0KHRpdGxlID0gIkRhdGUiKSwNCiAgICAgICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJVbmVtcGxveW1lbnQgaW4gJzAwMCIpLA0KICAgICAgICAgdGl0bGUgPSANCiAgICAgICAgIlVuZW1wbG95bWVudCBwZWFrZWQgYWZ0ZXIgdGhlIGZpbmFuY2lhbCBjcmlzaXMiKQ0KYGBgDQoNCkFzIGFuIGFzaWRlLCB0aGUgWSBheGlzIGluIHRoaXMgbGluZSBncmFwaCBkb2Vzbid0IHN0YXJ0IGZyb20gMCwgd2hpY2ggaXMgY29tbW9ubHkgZnJvd25lZCB1cG9uLiBUaGVyZSBpcyB1c3VhbGx5IG5vIGhhcmQgYW5kIGZhc3QgcnVsZSBhYm91dCB0aGlzIGJ1dCBnZW5lcmFsbHkgaWYgeW91IGFyZSBqdXN0IGludGVyZXN0ZWQgaW4gdGhlIHRyZW5kLCB0cnVuY2F0aW5nIHRoZSBZIGF4aXMgaXMgT0suDQoNCg0KIyMgUTMgDQoNClVzZSBgbXBnYCBkYXRhIGFuZCBgaGNoYXJ0KClgIGZ1bmN0aW9uLiBXZSB3YW50IHRvIGNyZWF0ZSBhIGhlYXRtYXAgb2YgYXZlcmFnZSBoaWdod2F5IG1pbGVhZ2UgZm9yIGRpZmZlcmVudCBgY2xhc3NgIGFuZCBgY3lsYC4gDQoNCmBgYHtyfQ0KY2FyID0gbXBnICU+JQ0KICBmaWx0ZXIoY3lsICE9IDUsIA0KICAgICAgICAgY2xhc3MgIT0gIjJzZWF0ZXIiKSAlPiUNCiAgZ3JvdXBfYnkoY2xhc3MsIGN5bCkgJT4lDQogIHN1bW1hcmlzZShod3kgPSBtZWFuKGh3eSkpDQpjYXIkY3lsID0gYXMuY2hhcmFjdGVyKGNhciRjeWwpDQpoY2hhcnQoY2FyLCAiaGVhdG1hcCIsIGhjYWVzKA0KICAgIHg9IGNsYXNzLCANCiAgICB5PWN5bCwgDQogICAgdmFsdWUgPSBod3kpKSAlPiUNCiAgaGNfeUF4aXModGl0bGUgPSBsaXN0KA0KICAgIHRleHQgPSAiYXMuY2hhcmFjdGVyLGN5bCIpKQ0KYGBgDQoNCiMjIFE0IA0KDQpGb3IgdGhpcyBleGFtcGxlLCB1c2UgYSByYW5kb21seSBzZWxlY3RlZCBzdWJzZXQgb2YgYGRpYW1vbmRzYCBkYXRhIHNldCBmcm9tIGBnZ3Bsb3QyYC4gTmV4dCB1c2UgYGQxYCB0byBjcmVhdGUgdGhlIGZvbGxvd2luZyBwbG90Lg0KDQpgYGB7ciBlY2hvPVRSVUV9DQpzZXQuc2VlZCgyMDIwKQ0KZDEgPC0gZGlhbW9uZHNbc2FtcGxlKG5yb3coZGlhbW9uZHMpLCAxMDAwKSxdDQpoY2hhcnQoZDEsICJzY2F0dGVyIiwgaGNhZXMoDQogICAgeD0gY2FyYXQsIA0KICAgIHk9IHByaWNlLCANCiAgICBncm91cCA9IGNsYXJpdHkpKSU+JQ0KICBoY195QXhpcyh0aXRsZSA9IGxpc3QoDQogICAgdGV4dCA9ICJQcmljZSBvZiBEaWFtb25kcyIpKSU+JQ0KICBoY194QXhpcyh0aXRsZSA9IGxpc3QoDQogICAgdGV4dCA9ICJXZWlnaHQgb2YgRGlhbW9uZHMgaW4gQ2FyYXRzIikpICU+JQ0KICBoY190aXRsZSgNCiAgICB0ZXh0ID0gIlZhcmlhdGlvbiBpbiBEaWFtb25kIFByaWNlcyBJbmNyZWFzZXMgd2l0aCBDYXJhdHMiDQogICAgKSAlPiUNCiAgaGNfYWRkX3RoZW1lKGhjX3RoZW1lX2ZsYXQoKSkNCmBgYA0KDQoNCiMjIFE1IA0KDQpSZWNyZWF0ZSB0aGUgcGxvdCBpbiBRMiB1c2luZyBgaGNoYXJ0KClgLiANCg0KYGBge3IgZmlnLndpZHRoPTl9DQpoY2hhcnQoZWNvbm9taWNzLCAibGluZSIsIGhjYWVzKA0KICAgIHg9IGRhdGUsIA0KICAgIHk9IHVuZW1wbG95KSwgDQogICAgbmFtZSA9ICJVbmVtcGxveW1lbnQiKSAlPiUNCiAgaGNfeEF4aXMoDQogICAgdGl0bGUgPSBsaXN0KHRleHQgPSAiRGF0ZSIpKSAlPiUNCiAgaGNfeUF4aXMoDQogICAgdGl0bGUgPSBsaXN0KHRleHQgPSAiVW5lbXBsb3ltZW50IGluICcwMDAiKSkgJT4lDQogIGhjX3RpdGxlKA0KICAgIHRleHQgPSAiVW5lbXBsb3ltZW50IHBlYWtlZCBhZnRlciB0aGUgZmluYW5jaWFsIGNyaXNpcyIgDQogICAgKSAlPiUNCiAgaGNfYWRkX3RoZW1lKGhjX3RoZW1lX2NoYWxrKCkpICU+JQ0KaGNfdG9vbHRpcChiYWNrZ3JvdW5kQ29sb3IgPSByZ2IoNTEvMjU2LCA1MS8yNTYsIDUxLzI1NiwgMC45KSkNCmBgYA0K