Update criteria for partial/full IPv6 support.
[tor-metrics-tasks.git] / task-6498 / plot.R
blobcebe4904728d37787121d2009df2235223b0c496
1 # uncomment for 2+ years
2 #CUTOFF <- "2010-05-26"
3 #DETAIL <- "week"
4 CUTOFF <- "2012-06-02"
5 DETAIL <- "day"
7 require(ggplot2)
8 require(reshape)
9 require(RColorBrewer)
10 data <- read.csv("task-6498-results.csv", stringsAsFactors = FALSE)
11 data <- data[data$valid_after >= paste(CUTOFF, "00:00:00"), ]
13 r <- data
14 r <- r[r$min_rate == 11875 & r$ports == "80-443-554-1755" &
15   r$min_advbw == 5000 & r$same_network == TRUE, ]
16 r <- aggregate(list(relays = r$relays, P_exit = 100 * r$exit_prob),
17   by = list(date = as.Date(cut.Date(as.Date(r$valid_after), DETAIL))),
18   FUN = median)
19 r <- melt(r, id.vars = c("date"))
20 r <- data.frame(r, type = ifelse(r$variable == "P_exit",
21   "Total exit probability (in %)", "Number of relays"))
22 ggplot(r, aes(x = date, y = value)) +
23 geom_line(colour = "purple", size = 0.75) +
24 facet_grid(type ~ ., scales = "free_y") +
25 scale_x_date(name = "") +
26 scale_y_continuous(name = "") +
27 scale_colour_manual(values = c("purple", "orange")) +
28 opts(title = paste("Fast relays (95+ Mbit/s configured bandwidth rate,\n",
29   "5000+ KB/s advertised bandwidth capacity,\n",
30   "exit to ports 80, 443, 554, and 1755,\n",
31   "at most 2 relays per /24 network)\n", sep = ""))
32 ggsave("fast-exits.png", width = 8, height = 6, dpi = 100)
34 t <- data
35 t1 <- t[t$min_rate == 11875 & t$ports == "80-443-554-1755" &
36   t$min_advbw == 5000 & t$same_network == TRUE, ]
37 t2 <- t[t$min_rate == 10000 & t$ports == "80-443" &
38   t$min_advbw == 2000 & t$same_network == FALSE, ]
39 t <- rbind(data.frame(t1, var = paste("95+ Mbit/s, 5000+ KB/s,",
40   "80/443/554/1755, 2- per /24")),
41   data.frame(t2, var = "80+ Mbit/s, 2000+ KB/s, 80/443"))
42 t <- aggregate(list(relays = t$relays, P_exit = 100 * t$exit_prob),
43   by = list(date = as.Date(cut.Date(as.Date(t$valid_after), DETAIL)),
44   var = t$var), FUN = median)
45 t <- melt(t, id.vars = c("date", "var"))
46 t <- data.frame(t, type = ifelse(t$variable == "P_exit",
47   "Total exit probability (in %)", "Number of relays"))
48 ggplot(t, aes(x = date, y = value, colour = var)) +
49 geom_line(size = 0.75) +
50 facet_grid(type ~ ., scales = "free_y") +
51 scale_x_date(name = "") +
52 scale_y_continuous(name = "") +
53 scale_colour_manual(name = "", values = c("purple", "orange")) +
54 opts(title = "Relays almost meeting the fast-exit requirements",
55   legend.position = "top")
56 ggsave("almost-fast-exits.png", width = 8, height = 6, dpi = 100)