Lots of updates
This commit is contained in:
parent
f8dd4fa093
commit
a0d99a907a
103
basics.R
103
basics.R
|
@ -1,26 +1,7 @@
|
|||
library(jsonlite)
|
||||
library(dplyr)
|
||||
library(ggplot2)
|
||||
library(scales)
|
||||
source("common.R")
|
||||
|
||||
# Frische Daten gibt es unter
|
||||
# https://green-spider.netzbegruenung.de/api/v1/spider-results/table/
|
||||
sites <- fromJSON("data/table.json")
|
||||
|
||||
# Beschreibung
|
||||
median(sites$score)
|
||||
mean(sites$score)
|
||||
|
||||
# Daten aufbereiten
|
||||
sites$generator[sites$generator == ""] <- "UNBEKANNT"
|
||||
sites_kv <- filter(sites, meta.level == "DE:KREISVERBAND")
|
||||
sites_ov <- filter(sites, meta.level == "DE:ORTSVERBAND")
|
||||
sites_generator_gcms <- filter(sites, generator == "typo3-gcms")
|
||||
sites_reachable <- filter(sites, rating.SITE_REACHABLE.value == "TRUE")
|
||||
|
||||
# die sites mit den CMS, die mind. 5 mal vorkommen
|
||||
# TODO: nicht filtern, sondern nicht-Top-CMSe in "SONSTIGE" umbenennen
|
||||
sites_top_cms <- sites %>% group_by(generator) %>% filter(n() >= 5) %>% filter(generator != "UNBEKANNT")
|
||||
# Beschreibung der Punktzahl
|
||||
summary(sites$score)
|
||||
|
||||
# Punkte
|
||||
|
||||
|
@ -63,84 +44,6 @@ ggplot(sites_top_cms, aes(x=reorder(generator, -score, FUN=median), y=score)) +
|
|||
labs(title="Punktzahl nach CMS", y="Punkte", x="CMS")
|
||||
ggsave("plots/punkte_nach_cms.png")
|
||||
|
||||
# Antwortzeiten
|
||||
|
||||
## Verteilung der Antwortzeiten (lineare X-Achse)
|
||||
ggplot(sites, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_histogram(binwidth=50) +
|
||||
xlim(0, 2000) +
|
||||
labs(title="Verteilung der Antwortzeiten (begrenzt auf 2 Sek.)", x="Antwortzeit in Millisekunden", y="Anzahl Sites")
|
||||
ggsave("plots/antwortzeiten_verteilung.png")
|
||||
|
||||
## Verteilung der Antwortzeiten als Kurve (lineare X-Achse)
|
||||
ggplot(sites, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_density(adjust = 3) +
|
||||
geom_vline(xintercept = median(sites$rating.HTTP_RESPONSE_DURATION.value), colour="blue") +
|
||||
xlim(0, 1500) +
|
||||
labs(title="Verteilung der Antwortzeiten", x="Antwortzeit in Millisekunden (Median in blau)", y="Häufigkeit")
|
||||
ggsave("plots/antwortzeiten_verteilung_kurve.png")
|
||||
|
||||
## Verteilung der Punkte (logarithmische X-Achse)
|
||||
ggplot(sites, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_histogram() +
|
||||
scale_x_log10() +
|
||||
labs(title="Verteilung der Antwortzeiten (logarithmische X-Achse)", x="Antwortzeit in Millisekunden (log.)", y="Anzahl Sites")
|
||||
ggsave("plots/antwortzeiten_verteilung_log.png")
|
||||
|
||||
## Antwortzeiten nach Gliederungsebene
|
||||
ggplot(sites, aes(x = reorder(meta.level, -rating.HTTP_RESPONSE_DURATION.value, FUN=median), y = rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
scale_y_log10() +
|
||||
coord_flip() +
|
||||
geom_boxplot() +
|
||||
labs(title="Antwortzeiten nach Gliederungsebene (logarithmische Achse)", x="Gliederung", y="Antwortzeit in Millisekunden (log.)")
|
||||
ggsave("plots/antwortzeiten_nach_gliederungsebene_log.png")
|
||||
|
||||
## Antwortzeiten nach Bundesland
|
||||
ggplot(sites, aes(x = reorder(meta.state, -rating.HTTP_RESPONSE_DURATION.value, FUN=median), y = rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
scale_y_log10() +
|
||||
geom_boxplot() +
|
||||
coord_flip() +
|
||||
labs(title="Antwortzeiten nach Bundesland", x="Bundesland", y="Antwortzeit in Millisekunden (log.)")
|
||||
ggsave("plots/antwortzeiten_nach_bundesland_log.png")
|
||||
|
||||
## Antwortzeiten nach CMS
|
||||
ggplot(sites_top_cms, aes(x = reorder(generator, -rating.HTTP_RESPONSE_DURATION.value, FUN=median), y = rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_boxplot() +
|
||||
geom_hline(yintercept = median(sites$rating.HTTP_RESPONSE_DURATION.value), colour="blue") +
|
||||
scale_y_log10() +
|
||||
coord_flip() +
|
||||
labs(title="Antwortzeiten nach CMS", x="CMS", y="Antwortzeit in Millisekunden (logarithmisch, Median in blau)")
|
||||
ggsave("plots/antwortzeiten_nach_cms_log.png")
|
||||
|
||||
|
||||
## Verhältnis Punkte - Antwortzeit
|
||||
responsetime_score <- data.frame(score = (sites_reachable$score - sites_reachable$rating.HTTP_RESPONSE_DURATION.score),
|
||||
duration = sites_reachable$rating.HTTP_RESPONSE_DURATION.value)
|
||||
max_score = max(responsetime_score$score)
|
||||
score_breaks <- function(x, n = max_score) pretty(x, n)[pretty(x, n) %% 1 == 0]
|
||||
|
||||
### Als Punkt-Plot
|
||||
ggplot(responsetime_score, aes(floor(score), duration)) +
|
||||
geom_point() +
|
||||
geom_jitter(width = .5, height = .2) +
|
||||
geom_smooth(method = "loess")+
|
||||
scale_y_log10(limits = c(30, 10001)) +
|
||||
scale_x_continuous(breaks = score_breaks) +
|
||||
labs(title="Verhältnis Punktzahl und Antwortzeit",
|
||||
subtitle="Punktzahl auf ganze Zahlen gerundet, ohne Punkte für Antwortzeit",
|
||||
x="Punktzahl (ohne Punkte für Antwortzeit)",
|
||||
y="Antwortzeit (ms, logarithmisch)")
|
||||
ggsave("plots/antwortzeiten_zu_punkte_point_log.png")
|
||||
|
||||
### Als Box-Plot
|
||||
ggplot(responsetime_score, aes(floor(score), duration)) +
|
||||
geom_boxplot(aes(group = cut_interval(floor(score), (max_score - 1)))) +
|
||||
scale_y_log10(limits = c(30, 10001)) +
|
||||
scale_x_continuous(breaks = score_breaks) +
|
||||
labs(title="Verhältnis Punktzahl und Antwortzeit",
|
||||
x="Punktzahl (ohne Punkte für Antwortzeit)",
|
||||
y="Antwortzeit (ms, logarithmisch)")
|
||||
ggsave("plots/antwortzeiten_zu_punkte_box_log.png")
|
||||
|
||||
## Einzelne Site-Kriterien
|
||||
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
library(jsonlite)
|
||||
library(dplyr)
|
||||
library(ggplot2)
|
||||
library(scales)
|
||||
|
||||
# Frische Daten gibt es per
|
||||
# curl https://green-spider.netzbegruenung.de/api/v1/spider-results/table/ > data/table.json
|
||||
sites <- fromJSON("data/table.json")
|
||||
|
||||
# Daten aufbereiten
|
||||
sites$generator[sites$generator == ""] <- "UNBEKANNT"
|
||||
sites_kv <- filter(sites, meta.level == "DE:KREISVERBAND")
|
||||
sites_ov <- filter(sites, meta.level == "DE:ORTSVERBAND")
|
||||
|
||||
sites_generator_gcms <- filter(sites, generator == "typo3-gcms")
|
||||
sites_generator_urwahl <- filter(sites, generator == "wordpress-urwahl")
|
||||
|
||||
sites_reachable <- filter(sites, rating.SITE_REACHABLE.value == "TRUE")
|
||||
|
||||
# die sites mit den CMS, die mind. 5 mal vorkommen
|
||||
# TODO: nicht filtern, sondern nicht-Top-CMSe in "SONSTIGE" umbenennen
|
||||
sites_top_cms <- sites %>% group_by(generator) %>% filter(n() >= 5) %>% filter(generator != "UNBEKANNT")
|
|
@ -0,0 +1,3 @@
|
|||
# Analyse von Daten auf Basis von Feeds
|
||||
|
||||
source("common.R")
|
|
@ -0,0 +1,113 @@
|
|||
source("common.R")
|
||||
|
||||
# Antwortzeiten
|
||||
|
||||
## Beschreibung der Antwortzeiten
|
||||
summary(sites$rating.HTTP_RESPONSE_DURATION.value)
|
||||
|
||||
## Verteilung der Antwortzeiten (lineare X-Achse)
|
||||
ggplot(sites, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_histogram(binwidth=50) +
|
||||
xlim(0, 2000) +
|
||||
labs(title="Verteilung der Antwortzeiten (begrenzt auf 2 Sek.)", x="Antwortzeit in Millisekunden", y="Anzahl Sites")
|
||||
ggsave("plots/antwortzeiten_verteilung.png")
|
||||
|
||||
## Verteilung der Antwortzeiten als Kurve (lineare X-Achse)
|
||||
ggplot(sites, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_density(adjust = 3) +
|
||||
geom_vline(xintercept = median(sites$rating.HTTP_RESPONSE_DURATION.value), colour="blue") +
|
||||
xlim(0, 1500) +
|
||||
labs(title="Verteilung der Antwortzeiten", x="Antwortzeit in Millisekunden (Median in blau)", y="Häufigkeit")
|
||||
ggsave("plots/antwortzeiten_verteilung_kurve.png")
|
||||
|
||||
## Verteilung der Punkte (logarithmische X-Achse)
|
||||
ggplot(sites, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_histogram() +
|
||||
scale_x_log10() +
|
||||
labs(title="Verteilung der Antwortzeiten (logarithmische X-Achse)", x="Antwortzeit in Millisekunden (log.)", y="Anzahl Sites")
|
||||
ggsave("plots/antwortzeiten_verteilung_log.png")
|
||||
|
||||
## Antwortzeiten nach Gliederungsebene
|
||||
ggplot(sites, aes(x = reorder(meta.level, -rating.HTTP_RESPONSE_DURATION.value, FUN=median), y = rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
scale_y_log10() +
|
||||
coord_flip() +
|
||||
geom_boxplot() +
|
||||
labs(title="Antwortzeiten nach Gliederungsebene (logarithmische Achse)", x="Gliederung", y="Antwortzeit in Millisekunden (log.)")
|
||||
ggsave("plots/antwortzeiten_nach_gliederungsebene_log.png")
|
||||
|
||||
## Antwortzeiten nach Bundesland
|
||||
ggplot(sites, aes(x = reorder(meta.state, -rating.HTTP_RESPONSE_DURATION.value, FUN=median), y = rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
scale_y_log10() +
|
||||
geom_boxplot() +
|
||||
coord_flip() +
|
||||
labs(title="Antwortzeiten nach Bundesland", x="Bundesland", y="Antwortzeit in Millisekunden (log.)")
|
||||
ggsave("plots/antwortzeiten_nach_bundesland_log.png")
|
||||
|
||||
## Antwortzeiten nach CMS
|
||||
ggplot(sites_top_cms, aes(x = reorder(generator, -rating.HTTP_RESPONSE_DURATION.value, FUN=median), y = rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_boxplot() +
|
||||
geom_hline(yintercept = median(sites$rating.HTTP_RESPONSE_DURATION.value), colour="blue") +
|
||||
scale_y_log10() +
|
||||
coord_flip() +
|
||||
labs(title="Antwortzeiten nach CMS", x="CMS", y="Antwortzeit in Millisekunden (logarithmisch, Median in blau)")
|
||||
ggsave("plots/antwortzeiten_nach_cms_log.png")
|
||||
|
||||
|
||||
## Verhältnis Punkte - Antwortzeit
|
||||
responsetime_score <- data.frame(score = (sites_reachable$score - sites_reachable$rating.HTTP_RESPONSE_DURATION.score),
|
||||
duration = sites_reachable$rating.HTTP_RESPONSE_DURATION.value)
|
||||
max_score = max(responsetime_score$score)
|
||||
score_breaks <- function(x, n = max_score) pretty(x, n)[pretty(x, n) %% 1 == 0]
|
||||
|
||||
### Als Punkt-Plot
|
||||
ggplot(responsetime_score, aes(floor(score), duration)) +
|
||||
geom_point() +
|
||||
geom_jitter(width = .5, height = .2) +
|
||||
geom_smooth(method = "loess")+
|
||||
scale_y_log10(limits = c(30, 10001)) +
|
||||
scale_x_continuous(breaks = score_breaks) +
|
||||
labs(title="Verhältnis Punktzahl und Antwortzeit",
|
||||
subtitle="Punktzahl auf ganze Zahlen gerundet, ohne Punkte für Antwortzeit",
|
||||
x="Punktzahl (ohne Punkte für Antwortzeit)",
|
||||
y="Antwortzeit (ms, logarithmisch)")
|
||||
ggsave("plots/antwortzeiten_zu_punkte_point_log.png")
|
||||
|
||||
### Als Box-Plot
|
||||
ggplot(responsetime_score, aes(floor(score), duration)) +
|
||||
geom_boxplot(aes(group = cut_interval(floor(score), (max_score - 1)))) +
|
||||
scale_y_log10(limits = c(30, 10001)) +
|
||||
scale_x_continuous(breaks = score_breaks) +
|
||||
labs(title="Verhältnis Punktzahl und Antwortzeit",
|
||||
x="Punktzahl (ohne Punkte für Antwortzeit)",
|
||||
y="Antwortzeit (ms, logarithmisch)")
|
||||
ggsave("plots/antwortzeiten_zu_punkte_box_log.png")
|
||||
|
||||
# Urwahl3000
|
||||
|
||||
## Beschreibung der Antwortzeiten
|
||||
summary(sites_generator_urwahl$rating.HTTP_RESPONSE_DURATION.value)
|
||||
|
||||
## Verteilung der Antwortzeiten (lineare X-Achse)
|
||||
ggplot(sites_generator_urwahl, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_histogram(binwidth=100) +
|
||||
geom_vline(xintercept = median(sites_generator_urwahl$rating.HTTP_RESPONSE_DURATION.value), colour="blue") +
|
||||
xlim(0, 3500) +
|
||||
labs(title="Sites mit Urwahl3000: Verteilung der Antwortzeiten (begrenzt auf 3,5 Sek)",
|
||||
x="Antwortzeit in Millisekunden",
|
||||
y="Anzahl Sites")
|
||||
ggsave("plots/cms_urwahl_antwortzeiten_verteilung.png")
|
||||
|
||||
## Verteilung der Antwortzeiten als Kurve (lineare X-Achse)
|
||||
ggplot(sites_generator_urwahl, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_density(adjust = 3) +
|
||||
geom_vline(xintercept = median(sites_generator_urwahl$rating.HTTP_RESPONSE_DURATION.value), colour="blue") +
|
||||
xlim(0, 1500) +
|
||||
labs(title="Verteilung der Antwortzeiten", x="Antwortzeit in Millisekunden (Median in blau)", y="Häufigkeit")
|
||||
ggsave("plots/cms_urwahl_antwortzeiten_verteilung_kurve.png")
|
||||
|
||||
## Verteilung der Punkte (logarithmische X-Achse)
|
||||
ggplot(sites_generator_urwahl, aes(rating.HTTP_RESPONSE_DURATION.value)) +
|
||||
geom_histogram() +
|
||||
scale_x_log10() +
|
||||
labs(title="Verteilung der Antwortzeiten (logarithmische X-Achse)", x="Antwortzeit in Millisekunden (log.)", y="Anzahl Sites")
|
||||
ggsave("plots/cms_urwahl_antwortzeiten_verteilung_log.png")
|
Loading…
Reference in New Issue