Base R

Scatter

histogram

ggplot2

Interactive (plotly)

p <- plot_ly(mlb,
  x = ~height,
  y = ~weight,
  name = "SF Zoo",
  type = "scatter"
)
p
No scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
Ignoring 1 observationsNo scatter mode specifed:
  Setting the mode to markers
  Read more about this attribute -> https://plot.ly/r/reference/#scatter-mode
Ignoring 1 observations

Interactive (dygraphs)

baro_ch <- read.csv2("https://datenservice.kof.ethz.ch/api/ts?keys=kofbarometer&mime=csv",
                     header=T,sep=",",
                     stringsAsFactors = F,
                     dec=".")
class(baro_ch)
[1] "data.frame"
head(baro_ch)
str(baro_ch)
'data.frame':   311 obs. of  2 variables:
 $ date        : chr  "1991-01" "1991-02" "1991-03" "1991-04" ...
 $ kofbarometer: num  86 86.6 87.2 93.6 97.9 ...
baro_ts <- ts(baro_ch$kofbarometer,
              start(1991,1),
              frequency = 12)
dygraph(baro_ts, main = "KOF Barometer") %>% 
  dyRangeSelector()
Error: could not find function "%>%"

Hacking dygraphs (Advanced Example)

Other chart types …

LS0tCnRpdGxlOiAiRXhwbG9yaW5nIEdyYXBoaWNzIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgojIEJhc2UgUgoKYGBge3J9CmxvYWQoIi4uLy4uL2RhdGEvbWxiLlJEYXRhIikKaGVhZChtbGIpCmBgYAoKIyMgU2NhdHRlcgpgYGB7cn0KaGlzdChtbGIkaGVpZ2h0KQpgYGAKCgojIyBoaXN0b2dyYW0KCmBgYHtyfQpoaXN0KG1sYiRBZ2UpCmBgYAoKCgoKIyMgZ2dwbG90MgpgYGB7cn0KbGlicmFyeShnZ3Bsb3QyKQpnIDwtIGdncGxvdChkYXRhPW1sYikKZyArIGdlb21fYmFyKGFlcyh4ID0gaGVpZ2h0KSkgKwogIHRoZW1lX2J3KCkgKyAKICBsYWJzKHRpdGxlID0gIlBsYXllciBzaXplIikKYGBgCgpgYGB7cn0KZyArIGdlb21fcG9pbnQoYWVzKHggPSBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICB5ID0gd2VpZ2h0LAogICAgICAgICAgICAgICAgICAgY29sID0gUG9zaXRpb24pCiAgICAgICAgICAgICAgICkgKwogIGxhYnModGl0bGUgPSAiU2l6ZSB2cy4gd2VpZ2h0IikKYGBgCgojIyBJbnRlcmFjdGl2ZSAocGxvdGx5KQoKYGBge3J9CmxpYnJhcnkocGxvdGx5KQpwIDwtIHBsb3RfbHkobWxiLAogIHggPSB+aGVpZ2h0LAogIHkgPSB+d2VpZ2h0LAogIG5hbWUgPSAiU0YgWm9vIiwKICB0eXBlID0gInNjYXR0ZXIiCikKcAoKYGBgCgojIyBJbnRlcmFjdGl2ZSAoZHlncmFwaHMpCjwhLS0gaHR0cHM6Ly9yc3R1ZGlvLmdpdGh1Yi5pby9keWdyYXBocy9nYWxsZXJ5LWN1c3RvbS1wbG90dGVycy5odG1sIC0tPgoKYGBge3J9CmxpYnJhcnkoanNvbmxpdGUpCmJhcm9fY2ggPC0gcmVhZC5jc3YyKCJodHRwczovL2RhdGVuc2VydmljZS5rb2YuZXRoei5jaC9hcGkvdHM/a2V5cz1rb2ZiYXJvbWV0ZXImbWltZT1jc3YiLAogICAgICAgICAgICAgICAgICAgICBoZWFkZXI9VCxzZXA9IiwiLAogICAgICAgICAgICAgICAgICAgICBzdHJpbmdzQXNGYWN0b3JzID0gRiwKICAgICAgICAgICAgICAgICAgICAgZGVjPSIuIikKY2xhc3MoYmFyb19jaCkKaGVhZChiYXJvX2NoKQpzdHIoYmFyb19jaCkKYmFyb190cyA8LSB0cyhiYXJvX2NoJGtvZmJhcm9tZXRlciwKICAgICAgICAgICAgICBzdGFydCgxOTkxLDEpLAogICAgICAgICAgICAgIGZyZXF1ZW5jeSA9IDEyKQpkeWdyYXBoKGJhcm9fdHMsIG1haW4gPSAiS09GIEJhcm9tZXRlciIpICU+JSAKICBkeVJhbmdlU2VsZWN0b3IoKQpgYGAKKipIYWNraW5nIGR5Z3JhcGhzIChBZHZhbmNlZCBFeGFtcGxlKSoqCmBgYHtyfQpsaWJyYXJ5KGR5Z3JhcGhzKQpkeUJhckNoYXJ0IDwtIGZ1bmN0aW9uKGR5Z3JhcGgpIHsKICBkeVBsb3R0ZXIoZHlncmFwaCA9IGR5Z3JhcGgsCiAgICAgICAgICAgIG5hbWUgPSAiQmFyQ2hhcnQiLAogICAgICAgICAgICBwYXRoID0gc3lzdGVtLmZpbGUoImV4YW1wbGVzL3Bsb3R0ZXJzL2JhcmNoYXJ0LmpzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2thZ2UgPSAiZHlncmFwaHMiKSkKfQoKZHlncmFwaChiYXJvX3RzLCBtYWluID0gIktPRiBCYXJvbWV0ZXIiKSAlPiUgCiAgZHlSYW5nZVNlbGVjdG9yKCkgJT4lCiAgZHlCYXJDaGFydCgpCgoKYGBgCgoKCgoKCiMjIE90aGVyIGNoYXJ0IHR5cGVzIC4uLgpgYGB7cn0KbGlicmFyeShmbXNiKQojIGFsbCBkYXRhIHRha2VuIGZyb20gYmFza2V0YmFsbC1yZWZlcmVuY2UuY29tCmxvYWQoIi4uLy4uL2RhdGEvY3VycnlfdnNfam9yZGFuLlJEYXRhIikKCnRjb21wIDwtIGRhdGEuZnJhbWUodChjb21wKSkKCnBhcihtZnJvdz1jKDEsMikpCnJhZGFyY2hhcnQocmJpbmQocmVwKDEwMCw3KSxyZXAoMCw3KSx0Y29tcFsxLC1jKDYsNyldKSwKICAgICAgICAgICBwZGVuc2l0eT00MCx0aXRsZSA9ICJTdGVwaCBDdXJyeSBTY29yZXIgUHJvZmlsZSIpCnJhZGFyY2hhcnQocmJpbmQocmVwKDEwMCw3KSxyZXAoMCw3KSx0Y29tcFsyLC1jKDYsNyldKSwKICAgICAgICAgICBwZGVuc2l0eT00MCx0aXRsZSA9ICJNaWNoYWVsIEpvcmRhbiA5MyBTY29yZXIgUHJvZmlsZSIpCmBgYAoKCg==