Installation of an open source analytics server in the Tor metrics subnetwork is recommended for rapid publication of interactive visualizations, similar to those on Tor Metrics.


Data Prep

require(readr)
require(dplyr)
require(ggplot2)
require(scales)
require(ggthemes)
dat <- read_csv("https://metrics.torproject.org/stats/servers.csv") %>% 
  filter(is.na(flag) & is.na(country) & is.na(version) & is.na(platform) & is.na(ec2bridge)) %>%
  mutate(bridges = as.integer(bridges)) %>% 
  mutate(date = as.Date(date)) %>% 
  mutate(new_relays = relays - lag(relays)) %>% 
  mutate(new_bridges = bridges - lag(bridges)) %>% 
  select(date, new_bridges, new_relays) 

Plot Functions

relay_deltas_plot <- function(start, end) {
  end <- min(end, as.character(Sys.Date() - 2))
  dat %>% 
    filter(date >= as.Date(start) & date <= as.Date(end)) %>% 
    ggplot(aes(date, new_relays)) +
      geom_line(size = 0.5) +
      scale_x_date(labels = date_format("%b-%Y")) +
      ggtitle("Change in Daily Number of Relays\n") +
      labs(y = "", x = "\nThe Tor Project - https://metrics.torproject.org") +
      theme_solarized(light = TRUE) +
      scale_colour_solarized()
}
bridge_deltas_plot <- function(start, end) {
  end <- min(end, as.character(Sys.Date() - 2))
  dat %>% 
    filter(date >= as.Date(start) & date <= as.Date(end)) %>% 
    ggplot(aes(date, new_bridges)) +
      geom_line(size = 0.5) +
      scale_x_date(labels = date_format("%b-%Y")) +
      ggtitle("Change in Daily Number of Bridges\n") +
      labs(y = "", x = "\nThe Tor Project - https://metrics.torproject.org") +
      theme_solarized(light = TRUE) +
      scale_colour_solarized()
}

Relay Delta Plots

2007-10-17 to 2017-5-28

relay_deltas_plot("2007-10-17", "2017-5-28")

2017-1-1 to 2017-5-28

relay_deltas_plot("2017-1-1", "2017-5-28")

Bridge Delta Plots

2007-10-17 to 2017-5-28

bridge_deltas_plot("0207-10-17", "2017-5-28")

2017-1-1 to 2017-5-28

bridge_deltas_plot("2017-1-1", "2017-5-28")