Plot Data


Index Plot

(p_index <- ggplot(long.index, aes(x = date, y = index, color = variable)) +
  geom_line() + 
  geom_point() + 
  theme_tufte() +
  ylab("Index"))
ggsave("data/p_index.png", p_index)

Sparklines

(p_spark <- ggplot(long, aes(x = date, y = measurement)) + 
  facet_grid(variable ~ ., scales = "free_y") + 
  geom_ribbon(data = quarts, aes(ymin = quart1, max = quart2), fill = 'grey90') + # grey bar
  geom_line(size=0.3) +
  geom_point(data = mins, col = 'blue') + # min value in blue
  geom_point(data = maxs, col = 'red') + # max  value in red
  geom_text(data = mins, aes(label = measurement), vjust = -1) + 
  geom_text(data = maxs, aes(label = measurement), vjust = 2.5) +
  geom_text(data = ends, aes(label = measurement), hjust = 0, nudge_x = 1) +
  geom_text(data = ends, aes(label = variable), hjust = 0, nudge_x = 12, size = 7) +
  expand_limits(x = max(long$date) + (0.25 * (max(long$date) - min(long$date)))) +
  theme_tufte(base_size = 15, base_family = "sans") +
  theme(axis.title=element_blank(), axis.text.y = element_blank(), 
        axis.ticks = element_blank(), strip.text = element_blank()))
ggsave("data/p_spark.png", p_spark)

TMap Fun

tmap_mode("view")
(tmap_fun <- tm_shape(shp = world.shp) +
  tm_polygons("Bitcoin", alpha = 0.5, 
              style = "pretty", interval.closure = "left") +
  tm_layout(legend.text.size = 0.8, legend.title.size = 1.1, frame = FALSE, 
            legend.outside = TRUE, 
            title = "Web Searches for Bitcoin, in relative terms over regions"))

save_tmap(tmap_fun, "data/bitcoin_tmap_fun.png")

TMap Static

tmap_mode("plot")
(p_tmap <- tm_shape(shp = world.shp) +
  tm_polygons("Bitcoin", alpha = 0.5, 
              style = "pretty", interval.closure = "left") +
  tm_layout(legend.text.size = 0.8, legend.title.size = 1.1, frame = FALSE, 
            legend.outside = TRUE,
            title = "Web Searches for Bitcoin, in relative terms over regions")+
  tm_style_cobalt())
save_tmap(p_tmap, "data/bitcoin_tmap.png")

Map GGplot

info: https://fcostartistician.wordpress.com/2017/09/13/how-to-deal-with-spatial-data-in-r-and-ggplot-shapefiles/

ggplot() +
      geom_polygon(data = map_draw,
                   mapping = aes(x = long, y = lat, group = group, fill = Bitcoin),
                 color = "black") +
      #Add the scale of colour you want
      theme(
        axis.text = element_blank(),
        axis.line = element_blank(),
        axis.ticks = element_blank(),
        panel.border = element_blank(),
        panel.grid = element_blank(),
        axis.title = element_blank()
        )+
      coord_cartesian()+
      ggtitle("Web Searches for Bitcoin, in relative terms over regions")

Final Plot

library(png)
library(grid)
img <- readPNG("data/bitcoin_tmap_fun.png")
g <- rasterGrob(img, interpolate=TRUE)
grid.arrange(g, p_spark) # sieht nicht aus

LS0tCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgY29kZV9mb2xkaW5nOiBzaG93CiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICB0b2M6IHllcwplZGl0b3Jfb3B0aW9uczogCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGlubGluZQotLS0KIyBQbG90IERhdGF7LnRhYnNldH0KKioqCgojIyBJbmRleCBQbG90CmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CihwX2luZGV4IDwtIGdncGxvdChsb25nLmluZGV4LCBhZXMoeCA9IGRhdGUsIHkgPSBpbmRleCwgY29sb3IgPSB2YXJpYWJsZSkpICsKICBnZW9tX2xpbmUoKSArIAogIGdlb21fcG9pbnQoKSArIAogIHRoZW1lX3R1ZnRlKCkgKwogIHlsYWIoIkluZGV4IikpCgpnZ3NhdmUoImRhdGEvcF9pbmRleC5wbmciLCBwX2luZGV4KQpgYGAKCiMjIFNwYXJrbGluZXMKYGBge3IgZWNobz1ULCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQoocF9zcGFyayA8LSBnZ3Bsb3QobG9uZywgYWVzKHggPSBkYXRlLCB5ID0gbWVhc3VyZW1lbnQpKSArIAogIGZhY2V0X2dyaWQodmFyaWFibGUgfiAuLCBzY2FsZXMgPSAiZnJlZV95IikgKyAKICBnZW9tX3JpYmJvbihkYXRhID0gcXVhcnRzLCBhZXMoeW1pbiA9IHF1YXJ0MSwgbWF4ID0gcXVhcnQyKSwgZmlsbCA9ICdncmV5OTAnKSArICMgZ3JleSBiYXIKICBnZW9tX2xpbmUoc2l6ZT0wLjMpICsKICBnZW9tX3BvaW50KGRhdGEgPSBtaW5zLCBjb2wgPSAnYmx1ZScpICsgIyBtaW4gdmFsdWUgaW4gYmx1ZQogIGdlb21fcG9pbnQoZGF0YSA9IG1heHMsIGNvbCA9ICdyZWQnKSArICMgbWF4ICB2YWx1ZSBpbiByZWQKICBnZW9tX3RleHQoZGF0YSA9IG1pbnMsIGFlcyhsYWJlbCA9IG1lYXN1cmVtZW50KSwgdmp1c3QgPSAtMSkgKyAKICBnZW9tX3RleHQoZGF0YSA9IG1heHMsIGFlcyhsYWJlbCA9IG1lYXN1cmVtZW50KSwgdmp1c3QgPSAyLjUpICsKICBnZW9tX3RleHQoZGF0YSA9IGVuZHMsIGFlcyhsYWJlbCA9IG1lYXN1cmVtZW50KSwgaGp1c3QgPSAwLCBudWRnZV94ID0gMSkgKwogIGdlb21fdGV4dChkYXRhID0gZW5kcywgYWVzKGxhYmVsID0gdmFyaWFibGUpLCBoanVzdCA9IDAsIG51ZGdlX3ggPSAxMiwgc2l6ZSA9IDcpICsKICBleHBhbmRfbGltaXRzKHggPSBtYXgobG9uZyRkYXRlKSArICgwLjI1ICogKG1heChsb25nJGRhdGUpIC0gbWluKGxvbmckZGF0ZSkpKSkgKwogIHRoZW1lX3R1ZnRlKGJhc2Vfc2l6ZSA9IDE1LCBiYXNlX2ZhbWlseSA9ICJzYW5zIikgKwogIHRoZW1lKGF4aXMudGl0bGU9ZWxlbWVudF9ibGFuaygpLCBheGlzLnRleHQueSA9IGVsZW1lbnRfYmxhbmsoKSwgCiAgICAgICAgYXhpcy50aWNrcyA9IGVsZW1lbnRfYmxhbmsoKSwgc3RyaXAudGV4dCA9IGVsZW1lbnRfYmxhbmsoKSkpCmdnc2F2ZSgiZGF0YS9wX3NwYXJrLnBuZyIsIHBfc3BhcmspCgpgYGAKCiMjIFRNYXAgRnVuIHsuYWN0aXZlfQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQp0bWFwX21vZGUoInZpZXciKQoodG1hcF9mdW4gPC0gdG1fc2hhcGUoc2hwID0gd29ybGQuc2hwKSArCiAgdG1fcG9seWdvbnMoIkJpdGNvaW4iLCBhbHBoYSA9IDAuNSwgCiAgICAgICAgICAgICAgc3R5bGUgPSAicHJldHR5IiwgaW50ZXJ2YWwuY2xvc3VyZSA9ICJsZWZ0IikgKwogIHRtX2xheW91dChsZWdlbmQudGV4dC5zaXplID0gMC44LCBsZWdlbmQudGl0bGUuc2l6ZSA9IDEuMSwgZnJhbWUgPSBGQUxTRSwgCiAgICAgICAgICAgIGxlZ2VuZC5vdXRzaWRlID0gVFJVRSwgCiAgICAgICAgICAgIHRpdGxlID0gIldlYiBTZWFyY2hlcyBmb3IgQml0Y29pbiwgaW4gcmVsYXRpdmUgdGVybXMgb3ZlciByZWdpb25zIikpCgpzYXZlX3RtYXAodG1hcF9mdW4sICJkYXRhL2JpdGNvaW5fdG1hcF9mdW4ucG5nIikKYGBgCgojIyBUTWFwIFN0YXRpYwpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQp0bWFwX21vZGUoInBsb3QiKQoKKHBfdG1hcCA8LSB0bV9zaGFwZShzaHAgPSB3b3JsZC5zaHApICsKICB0bV9wb2x5Z29ucygiQml0Y29pbiIsIGFscGhhID0gMC41LCAKICAgICAgICAgICAgICBzdHlsZSA9ICJwcmV0dHkiLCBpbnRlcnZhbC5jbG9zdXJlID0gImxlZnQiKSArCiAgdG1fbGF5b3V0KGxlZ2VuZC50ZXh0LnNpemUgPSAwLjgsIGxlZ2VuZC50aXRsZS5zaXplID0gMS4xLCBmcmFtZSA9IEZBTFNFLCAKICAgICAgICAgICAgbGVnZW5kLm91dHNpZGUgPSBUUlVFLAogICAgICAgICAgICB0aXRsZSA9ICJXZWIgU2VhcmNoZXMgZm9yIEJpdGNvaW4sIGluIHJlbGF0aXZlIHRlcm1zIG92ZXIgcmVnaW9ucyIpKwogIHRtX3N0eWxlX2NvYmFsdCgpKQoKc2F2ZV90bWFwKHBfdG1hcCwgImRhdGEvYml0Y29pbl90bWFwLnBuZyIpCmBgYAojIyBNYXAgR0dwbG90CmluZm86IGh0dHBzOi8vZmNvc3RhcnRpc3RpY2lhbi53b3JkcHJlc3MuY29tLzIwMTcvMDkvMTMvaG93LXRvLWRlYWwtd2l0aC1zcGF0aWFsLWRhdGEtaW4tci1hbmQtZ2dwbG90LXNoYXBlZmlsZXMvCmBgYHtyfQpnZ3Bsb3QoKSArCiAgICAgIGdlb21fcG9seWdvbihkYXRhID0gbWFwX2RyYXcsCiAgICAgICAgICAgICAgICAgICBtYXBwaW5nID0gYWVzKHggPSBsb25nLCB5ID0gbGF0LCBncm91cCA9IGdyb3VwLCBmaWxsID0gQml0Y29pbiksCiAgICAgICAgICAgICAgICAgY29sb3IgPSAiYmxhY2siKSArCiAgICAgICNBZGQgdGhlIHNjYWxlIG9mIGNvbG91ciB5b3Ugd2FudAogICAgICB0aGVtZSgKICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy5saW5lID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIGF4aXMudGlja3MgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgcGFuZWwuYm9yZGVyID0gZWxlbWVudF9ibGFuaygpLAogICAgICAgIHBhbmVsLmdyaWQgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfYmxhbmsoKQogICAgICAgICkrCiAgICAgIGNvb3JkX2NhcnRlc2lhbigpKwogICAgICBnZ3RpdGxlKCJXZWIgU2VhcmNoZXMgZm9yIEJpdGNvaW4sIGluIHJlbGF0aXZlIHRlcm1zIG92ZXIgcmVnaW9ucyIpCmBgYAoKIyMgRmluYWwgUGxvdApgYGB7cn0KbGlicmFyeShwbmcpCmxpYnJhcnkoZ3JpZCkKaW1nIDwtIHJlYWRQTkcoImRhdGEvYml0Y29pbl90bWFwX2Z1bi5wbmciKQpnIDwtIHJhc3Rlckdyb2IoaW1nLCBpbnRlcnBvbGF0ZT1UUlVFKQoKZ3JpZC5hcnJhbmdlKGcsIHBfc3BhcmspICMgc2llaHQgbmljaHQgYXVzCmBgYAoK