|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
GetBaseCertsGraph <- function(Cert_PerCountry, year){
graph1 <- ggplot2::qplot(main = "Countries with above average number of companies certified with 27001 (2012)",
x = reorder(country_short,X2012),
y = X2012,
xlab = "Country",
ylab = "Number of certifications",
data = Cert_PerCountry[Cert_PerCountry$X2012 > mean(Cert_PerCountry$X2012),],
geom = "col",
fill = Continent)
graph1
}
GetAttacksEvolution <- function(Attacks){
attacks.range <- Attacks[Attacks$Date < "2016-01-01" & Attacks$Date >= "2012-01-01",]
attacks.range$Year <- as.numeric(format(attacks.range$Date, "%Y"))
attacks.range <- mutate(attacks.range, Year = format(attacks.range$Date, "%Y")) %>% group_by(Year)
attacks.range <- as.data.frame(table(attacks.range$Year))
colnames(attacks.range) <- c("Year","Attacks")
graph1 <- ggplot2::qplot(main = "Countries with above average number of companies certified with 27001 (2012)",
x = attacks.range$Year,
y = attacks.range$Attacks,
group = 1,
xlab = "Years",
ylab = "Number of attacks",
data = attacks.range,
geom = "line") + geom_point() + geom_smooth( method = lm, se = FALSE)
graph1
}
|
|
37
38
39
40
41
42
43
44
|
#' Return every graph used in the report file
#'
#' @param Cert_PerCountry data.frame with the processed data of ISO 27001 certifications
#' @param Attacks data.frame with the processed data of cyberattacks
#'
#' @return data.frame
#' @export
GetReportGraphs <- function(Cert_PerCountry,Attacks) {
|
|
45
|
#2012
|
|
46
|
graph1 <- ggplot2::qplot(main = "Countries with above average number of companies certified with 27001 (2012)",
|
|
47
48
|
x = reorder(country_short,X2012),
y = X2012,
|
|
49
50
|
xlab = "Country",
ylab = "Number of certifications",
|
|
51
52
53
54
|
data = Cert_PerCountry[Cert_PerCountry$X2012 > mean(Cert_PerCountry$X2012),],
geom = "col",
fill = Continent)
|
|
55
56
57
|
attacks2k12 <- Attacks[Attacks$Date < "2013-01-01" & Attacks$Date >= "2012-01-01",]
frameAttacks2k12 <- as.data.frame(table(attacks2k12$Country))
colnames(frameAttacks2k12) <- c("Country","Attacks")
|
|
58
|
graph2 <- ggplot2::qplot(main = "Countries with above average number of cyberattacks (2012)",
|
|
59
60
|
x = reorder(Country,Attacks),
y = Attacks,
|
|
61
62
|
xlab = "Country",
ylab = "Number of attacks",
|
|
63
64
65
|
data = frameAttacks2k12[frameAttacks2k12$Attacks > mean(frameAttacks2k12$Attacks),],
geom = "col",
fill = Continent)
|
|
66
67
68
69
|
Attacks2012ByMonth <- mutate(attacks2k12, month = format(attacks2k12$Date, "%m")) %>% group_by(month)
Attack2012FreqByMonth <- as.data.frame(table(Attacks2012ByMonth$month))
colnames(Attack2012FreqByMonth) <- c("Month", "Attacks")
|
|
70
71
|
graph3 <- ggplot2::qplot(x = as.numeric(Month),
y = Attacks,
|
|
72
73
74
75
|
main = "Global cyberattack progression by month (2012)",
data = Attack2012FreqByMonth,
geom = c("point", "smooth"),
xlim = c(1,12),
|
|
76
|
xlab = "Month") + ggplot2::scale_x_continuous(breaks = 1:12)
|
|
77
78
|
#2013
|
|
79
|
graph4 <- ggplot2::qplot(main = "Countries with above average number of companies certified with 27001 (2013)",
|
|
80
81
|
x = reorder(country_short,X2013),
y = X2013,
|
|
82
83
|
xlab = "Country",
ylab = "Number of certifications",
|
|
84
85
86
|
data = Cert_PerCountry[Cert_PerCountry$X2013 > mean(Cert_PerCountry$X2013),]
, geom = "col",
fill = Continent)
|
|
87
88
89
|
attacks2k13 <- Attacks[Attacks$Date < "2014-01-01" & Attacks$Date >= "2013-01-01",]
frameAttacks2k13 <- as.data.frame(table(attacks2k13$Country))
colnames(frameAttacks2k13) <- c("Country","Attacks")
|
|
90
|
graph5 <- ggplot2::qplot(main = "Countries with above average number of cyberattacks (2013)",
|
|
91
92
|
x = reorder(Country,Attacks),
y = Attacks,
|
|
93
94
|
xlab = "Country",
ylab = "Number of attacks",
|
|
95
96
97
|
data = frameAttacks2k13[frameAttacks2k13$Attacks > mean(frameAttacks2k13$Attacks),]
, geom = "col",
fill = Continent)
|
|
98
99
100
101
|
Attacks2013ByMonth <- mutate(attacks2k13, month = format(attacks2k13$Date, "%m")) %>% group_by(month)
Attack2013FreqByMonth <- as.data.frame(table(Attacks2013ByMonth$month))
colnames(Attack2013FreqByMonth) <- c("Month", "Attacks")
|
|
102
103
|
graph6 <- ggplot2::qplot(x = as.numeric(Month),
y = Attacks,
|
|
104
105
106
107
|
main = "Global cyberattack progression by month (2013)",
data = Attack2013FreqByMonth,
geom = c("point", "smooth"),
xlim = c(1,12),
|
|
108
|
xlab = "Month") + ggplot2::scale_x_continuous(breaks = 1:12)
|
|
109
110
|
#2014
|
|
111
|
graph7 <- ggplot2::qplot(main = "Countries with above average number of companies certified with 27001 (2014)",
|
|
112
113
|
x = reorder(country_short,X2014),
y = X2014,
|
|
114
115
|
xlab = "Country",
ylab = "Number of certifications",
|
|
116
117
118
|
data = Cert_PerCountry[Cert_PerCountry$X2014 > mean(Cert_PerCountry$X2014),]
, geom = "col",
fill = Continent)
|
|
119
120
121
|
attacks2k14 <- Attacks[Attacks$Date < "2015-01-01" & Attacks$Date >= "2014-01-01",]
frameAttacks2k14 <- as.data.frame(table(attacks2k14$Country))
colnames(frameAttacks2k14) <- c("Country","Attacks")
|
|
122
|
graph8 <- ggplot2::qplot(main = "Countries with above average number of cyberattacks (2014)",
|
|
123
124
|
x = reorder(Country,Attacks),
y = Attacks,
|
|
125
126
|
xlab = "Country",
ylab = "Number of attacks",
|
|
127
128
129
|
data = frameAttacks2k14[frameAttacks2k14$Attacks > mean(frameAttacks2k14$Attacks),]
, geom = "col",
fill = Continent)
|
|
130
131
132
133
|
Attacks2014ByMonth <- mutate(attacks2k14, month = format(attacks2k14$Date, "%m")) %>% group_by(month)
Attack2014FreqByMonth <- as.data.frame(table(Attacks2014ByMonth$month))
colnames(Attack2014FreqByMonth) <- c("Month", "Attacks")
|
|
134
135
|
graph9 <- ggplot2::qplot(x = as.numeric(Month),
y = Attacks,
|
|
136
137
138
139
|
main = "Global cyberattack progression by month (2014)",
data = Attack2014FreqByMonth,
geom = c("point", "smooth"),
xlim = c(1,12),
|
|
140
|
xlab = "Month") + ggplot2::scale_x_continuous(breaks = 1:12)
|
|
141
142
|
#2015
|
|
143
|
graph10 <- ggplot2::qplot(main = "Countries with above average number of companies certified with 27001 (2015)",
|
|
144
145
|
x = reorder(country_short,X2015),
y = X2015,
|
|
146
147
|
xlab = "Country",
ylab = "Number of certifications",
|
|
148
149
150
|
data = Cert_PerCountry[Cert_PerCountry$X2015 > mean(Cert_PerCountry$X2015),]
, geom = "col",
fill = Continent)
|
|
151
152
153
|
attacks2k15 <- Attacks[Attacks$Date < "2016-01-01" & Attacks$Date >= "2015-01-01",]
frameAttacks2k15 <- as.data.frame(table(attacks2k15$Country))
colnames(frameAttacks2k15) <- c("Country","Attacks")
|
|
154
|
graph11 <- ggplot2::qplot(main = "Countries with above average number of cyberattacks (2015)",
|
|
155
156
|
x = reorder(Country,Attacks),
y = Attacks,
|
|
157
158
|
xlab = "Country",
ylab = "Number of attacks",
|
|
159
160
161
|
data = frameAttacks2k15[frameAttacks2k15$Attacks > mean(frameAttacks2k15$Attacks),]
, geom = "col",
fill = Continent)
|
|
162
163
164
165
|
Attacks2015ByMonth <- mutate(attacks2k15, month = format(attacks2k15$Date, "%m")) %>% group_by(month)
Attack2015FreqByMonth <- as.data.frame(table(Attacks2015ByMonth$month))
colnames(Attack2015FreqByMonth) <- c("Month", "Attacks")
|
|
166
|
graph12 <- ggplot2::qplot(x = as.numeric(Month),
|
|
167
168
169
170
171
|
y = Attacks,
main = "Global cyberattack progression by month (2015)",
data = Attack2015FreqByMonth,
geom = c("point", "smooth"),
xlim = c(1,12),
|
|
172
|
xlab = "Month") + ggplot2::scale_x_continuous(breaks = 1:12)
|
|
173
174
175
176
177
178
|
list(graph1,graph2,graph3,graph4,graph5,graph6,graph7,graph8,graph9,graph10,graph11,graph12)
}
|