Merges George changes
[p2p-testing-infrastructure.git] / TestSpecs / scenario02.r
1 #
2 # Copyright: George Milescu 2010 - george.milescu@gmail.com
3 #
4 # R script used to plot the results of a scenario
5
6 # import ggplot2
7 library(ggplot2)
8
9 # Read transmitted command line arguments
10 args <- commandArgs(trailingOnly = TRUE)
11
12 # The data files are located in the target folder. Also, the graph will be saved in the target folder.
13 target_folder <- args[2]
14 campaign_name <- args[3]
15 rm(args)
16
17 # read data from the data file
18 doe=read.table(paste(target_folder, "p2p-next-01.log.data", sep="/"), header=T, sep=" ")
19 proxy01=read.table(paste(target_folder, "p2p-next-03.log.data", sep="/"), header=T, sep=" ")
20 proxy02=read.table(paste(target_folder, "p2p-next-04.log.data", sep="/"), header=T, sep=" ")
21 leecher01=read.table(paste(target_folder, "p2p-next-06.log.data", sep="/"), header=T, sep=" ")
22 leecher02=read.table(paste(target_folder, "p2p-next-07.log.data", sep="/"), header=T, sep=" ")
23 leecher03=read.table(paste(target_folder, "p2p-next-08.log.data", sep="/"), header=T, sep=" ")
24 leecher04=read.table(paste(target_folder, "p2p-next-09.log.data", sep="/"), header=T, sep=" ")
25 leecher05=read.table(paste(target_folder, "p2p-next-10.log.data", sep="/"), header=T, sep=" ")
26
27 # transform KB/s to Mbit/s
28 doe$dlspeed <- doe$dlspeed*8/1000
29 proxy01$dlspeed <- proxy01$dlspeed*8/1000
30 proxy02$dlspeed <- proxy02$dlspeed*8/1000
31 leecher01$dlspeed <- leecher01$dlspeed*8/1000
32 leecher02$dlspeed <- leecher02$dlspeed*8/1000
33 leecher03$dlspeed <- leecher03$dlspeed*8/1000
34 leecher04$dlspeed <- leecher04$dlspeed*8/1000
35 leecher05$dlspeed <- leecher05$dlspeed*8/1000
36
37
38
39 # plot dlspeed-percent data
40 p <- ggplot() +
41 geom_point(aes(x=doe$percent, y=doe$dlspeed, label="Doe", colour="Doe"), size=1) +
42 geom_point(aes(x=proxy01$percent, y=proxy01$dlspeed, label="Proxy 01", colour="Proxy 01"), size=1) +
43 geom_point(aes(x=proxy02$percent, y=proxy02$dlspeed, label="Proxy 02", colour="Proxy 02"), size=1) +
44 geom_point(aes(x=leecher01$percent, y=leecher01$dlspeed, label="Leecher 01", colour="Leecher 01"), size=1) +
45 geom_point(aes(x=leecher02$percent, y=leecher02$dlspeed, label="Leecher 02", colour="Leecher 02"), size=1) +
46 geom_point(aes(x=leecher03$percent, y=leecher03$dlspeed, label="Leecher 03", colour="Leecher 03"), size=1) +
47 geom_point(aes(x=leecher04$percent, y=leecher04$dlspeed, label="Leecher 04", colour="Leecher 04"), size=1) +
48 geom_point(aes(x=leecher05$percent, y=leecher05$dlspeed, label="Leecher 05", colour="Leecher 05"), size=1) +
49 theme_bw() +
50 scale_x_continuous("Percent", limits=c(0, 100), breaks=seq(0, 100, 10)) +
51 scale_y_continuous("Download speed (Mbit/s)", limits=c(0, 8), breaks=seq(0, 8, 0.5)) +
52 coord_cartesian() +
53 scale_colour_manual("Legend", c("Leecher 01"="red", "Leecher 02"="blue", "Leecher 03"="green", "Leecher 04"="orange", "Leecher 05"="pink", "Doe"="black", "Proxy 01"="magenta", "Proxy 02"="cyan")) +
54 opts(title=paste(campaign_name, "Scenario-02: a flashcrowd swarm (1 Seeder, 5 Leechers, 1 Doe, 2 Proxies)\nall peers have an 8 Mbit/s BW", sep="\n"))
55
56 # plot data as an eps file
57 postscript(paste(target_folder, "scenario02-dlspeed-percent.eps", sep="/"))
58 print(p)
59 dev.off()
60
61 # plot data as an png file
62 png(paste(target_folder, "scenario02-dlspeed-percent.png", sep="/"), width = 1280, height = 800)
63 print(p)
64 dev.off()
65
66
67
68 # plot dlspeed-time data
69 p <- ggplot() +
70 geom_point(aes(x=doe$time, y=doe$dlspeed, label="Doe", colour="Doe"), size=1) +
71 geom_point(aes(x=proxy01$time, y=proxy01$dlspeed, label="Proxy 01", colour="Proxy 01"), size=1) +
72 geom_point(aes(x=proxy02$time, y=proxy02$dlspeed, label="Proxy 02", colour="Proxy 02"), size=1) +
73 geom_point(aes(x=leecher01$time, y=leecher01$dlspeed, label="Leecher 01", colour="Leecher 01"), size=1) +
74 geom_point(aes(x=leecher02$time, y=leecher02$dlspeed, label="Leecher 02", colour="Leecher 02"), size=1) +
75 geom_point(aes(x=leecher03$time, y=leecher03$dlspeed, label="Leecher 03", colour="Leecher 03"), size=1) +
76 geom_point(aes(x=leecher04$time, y=leecher04$dlspeed, label="Leecher 04", colour="Leecher 04"), size=1) +
77 geom_point(aes(x=leecher05$time, y=leecher05$dlspeed, label="Leecher 05", colour="Leecher 05"), size=1) +
78 theme_bw() +
79 scale_x_continuous("Time (s)") +
80 scale_y_continuous("Download speed (Mbit/s)", limits=c(0, 8), breaks=seq(0, 8, 0.5)) +
81 coord_cartesian() +
82 scale_colour_manual("Legend", c("Leecher 01"="red", "Leecher 02"="blue", "Leecher 03"="green", "Leecher 04"="orange", "Leecher 05"="pink", "Doe"="black", "Proxy 01"="magenta", "Proxy 02"="cyan")) +
83 opts(title=paste(campaign_name, "Scenario-02: a flashcrowd swarm (1 Seeder, 5 Leechers, 1 Doe, 2 Proxies)\nall peers have an 8 Mbit/s BW", sep="\n"))
84
85 # plot data as an eps file
86 postscript(paste(target_folder, "scenario02-dlspeed-time.eps", sep="/"))
87 print(p)
88 dev.off()
89
90 # plot data as an png file
91 png(paste(target_folder, "scenario02-dlspeed-time.png", sep="/"), width = 1280, height = 800)
92 print(p)
93 dev.off()