Revision history for TutoriumGrundlagenStatistikScatterplot
Additions:
----
Additions:
Übung 3 beschäftigt sich mit der Erstellung eines Scatterplotts (deutsch Streudiagramm).
Ein Streudiagramm, auch Punktwolke genannt, ist die graphische Darstellung von beobachteten Wertepaaren zweier statistischer Merkmale. Diese Wertepaare werden in ein kartesisches Koordinatensystem eingetragen, wodurch sich eine Punktwolke ergibt. Die Darstellung der Punkte kann durch verschiedene kleine Symbole erfolgen.
In dieser Aufgabe ist es Ziel, ein Streudiagramm zu erstellen, welches zwei verschiedene Ansichten bereitstellt. Die erste Ansicht zeigt jeweils nur die Punkte des Datensatzes wobei die zweite Ansicht die Verteilungsdichte darstellt.
https://de.wikipedia.org/wiki/Streudiagramm
Ein Streudiagramm, auch Punktwolke genannt, ist die graphische Darstellung von beobachteten Wertepaaren zweier statistischer Merkmale. Diese Wertepaare werden in ein kartesisches Koordinatensystem eingetragen, wodurch sich eine Punktwolke ergibt. Die Darstellung der Punkte kann durch verschiedene kleine Symbole erfolgen.
In dieser Aufgabe ist es Ziel, ein Streudiagramm zu erstellen, welches zwei verschiedene Ansichten bereitstellt. Die erste Ansicht zeigt jeweils nur die Punkte des Datensatzes wobei die zweite Ansicht die Verteilungsdichte darstellt.
https://de.wikipedia.org/wiki/Streudiagramm
Deletions:
Ziel ist es hier eine rote Linie für die Temperatur und eine Blaue Linie für den Wind auszugeben.
Additions:
||{text-align: LEFT}**[[TutoriumGrundlagenStatistikLinegraph2 << Zurück]]** ||{text-align: RIGHT}**[[TutoriumGrundlagenStatistikBoxplot >> Weiter]]**| |
Deletions:
Additions:
Die Scatterplott beschäftigt sich erneut mit der Erstellung eines Kantengraph Diagramms.
Nun werden zusätzliche Bibliotheken benötigt.
Nun werden zusätzliche Bibliotheken benötigt.
Deletions:
Da die Grundlagen in der ersten Aufgabe erläutert wurden, werden die Kommentare in dieser Übung etwas weniger.
Wir beginnen wieder mit der server.R Datei. Nun werden zusätzliche Bibliotheken benötigt.
Additions:
{{files download="Scatterplott.txt"text="Scatterplott als .txt"}}
Deletions:
Additions:
**{{color text="Hier können Sie den Quellcode ohne Kommentare zusammengefasst herunterladen:" c="#00386a"}}**
{{files download="Scatterplott.txt"text="Treemap als .txt"}}
{{files download="Scatterplott.txt"text="Treemap als .txt"}}
Deletions:
{{files download="Scatterplott.txt"text="Scatterplott als .txt"}}
No Differences
Additions:
{{image url="Scatterplot2.jpg" width="400" class="right"}}
Deletions:
Additions:
{{image url="Scatterplot1.jpg" width="400" class="left"}}
{{image url="Scatterplot.jpg" width="400" class="right"}}
{{image url="Scatterplot.jpg" width="400" class="right"}}
Deletions:
{{image url="Scatterplott.jpg" width="400" class="right"}}
Additions:
{{image url="Scatterplott1.jpg" width="400" class="left"}}
{{image url="Scatterplott.jpg" width="400" class="right"}}
{{files download="Scatterplott.txt"text="Scatterplott als .txt"}}
{{image url="Scatterplott.jpg" width="400" class="right"}}
{{files download="Scatterplott.txt"text="Scatterplott als .txt"}}
Deletions:
{{files download="Linegraph2.txt"text="Linegraph 2 als .txt"}}
{{files}}
Additions:
if (nrow(point) ""=="" 0) return(NULL)
if(input$density ""=="" TRUE)
if(input$density ""=="" TRUE)
Deletions:
if(input$density == TRUE)
Additions:
Wir beginnen wieder mit der server.R Datei. Nun werden zusätzliche Bibliotheken benötigt.
Diese bitte zuerst installieren. ( install.packages("viridis","viridisLite")
library(viridis) # fuer Farbschema der Dichte
library(viridisLite) # fuer Farbschema der Dichte
data <- faithful
output$density <- renderUI({
checkboxInput(inputId = 'density', label = 'Dichte anzeigen',
value = FALSE
ranges = data.frame(x = c(min(data$waiting), max(data$waiting)), y = c(min(data$eruptions), max(data$eruptions))),
brushedPoints = data.frame()
observeEvent(input$dblclick, {
if(!is.null(input$brush)){
rV$ranges$x <- c(input$brush$xmin, input$brush$xmax)
rV$ranges$y <- c(input$brush$ymin, input$brush$ymax)
}
else{
rV$ranges$x <- c(min(data$waiting), max(data$waiting))
rV$ranges$y <- c(min(data$eruptions), max(data$eruptions))
}
observeEvent(input$brush, {
rV$brushedPoints <- brushedPoints(data, input$brush)
output$hoverInfo <- renderUI({
hover <- input$hover
brush <- input$brush
if (!is.null(brush) && !is.null(hover) &&
hover$x >= brush$xmin && hover$x <= brush$xmax &&
hover$y >= brush$ymin && hover$y <= brush$ymax) {
style <- paste0("position:absolute; z-index:100; background-color: rgba(245, 245, 245, 0.85); ",
"left:", brush$coords_img$xmax + 5, "px; top:", brush$coords_img$ymax + 5, "px;")
wellPanel(
style = style,
p(HTML(paste0("<b> Anzahl markierter Punkte </b>", nrow(rV$brushedPoints), "<br/>",
"<b> brush obere Grenze </b>", brush$ymax, "<br/>",
"<b> brush untere Grenze </b>", brush$ymin, "<br/>",
"<b> brush linke Grenze </b>", brush$xmin, "<br/>",
"<b> brush rechte Grenze </b>", brush$xmax)))
)
}
else {
point <- nearPoints(data, hover, threshold = 10, maxpoints = 1, addDist = TRUE)
if (nrow(point) == 0) return(NULL)
style <- paste0("position:absolute; z-index:100; background-color: rgba(245, 245, 245, 0.85); ",
"left:", hover$coords_img$x + 5, "px; top:", hover$coords_img$y + 5, "px;")
wellPanel(
style = style,
p(HTML(paste0("<b> Eruptionszeit: </b>", point$eruptions, "<br/>",
"<b> Wartezeit: </b>", point$waiting)))
)
}
output$scatterPlot <- renderPlot({
p <- ggplot(data) +
coord_cartesian(xlim = rV$ranges$x, ylim = rV$ranges$y, expand = FALSE)
if(input$density == TRUE)
p <- p + stat_density_2d(aes(waiting, eruptions, fill = stat(level)), geom = "polygon", colour = "white") +
scale_fill_viridis() +
labs(fill = 'Dichte')
else
p <- p + geom_point(aes(waiting, eruptions))
}
titlePanel("Demo 3_Scatterplot"),
htmlOutput('density')
style = "position:relative",
uiOutput("hoverInfo"),
plotOutput('scatterPlot',
click = "click",
dblclick = "dblclick",
brush = brushOpts(id = "brush", resetOnNew = TRUE),
hover = hoverOpts(id = "hover", delay = 250, delayType = "throttle"))
Diese bitte zuerst installieren. ( install.packages("viridis","viridisLite")
library(viridis) # fuer Farbschema der Dichte
library(viridisLite) # fuer Farbschema der Dichte
data <- faithful
output$density <- renderUI({
checkboxInput(inputId = 'density', label = 'Dichte anzeigen',
value = FALSE
ranges = data.frame(x = c(min(data$waiting), max(data$waiting)), y = c(min(data$eruptions), max(data$eruptions))),
brushedPoints = data.frame()
observeEvent(input$dblclick, {
if(!is.null(input$brush)){
rV$ranges$x <- c(input$brush$xmin, input$brush$xmax)
rV$ranges$y <- c(input$brush$ymin, input$brush$ymax)
}
else{
rV$ranges$x <- c(min(data$waiting), max(data$waiting))
rV$ranges$y <- c(min(data$eruptions), max(data$eruptions))
}
observeEvent(input$brush, {
rV$brushedPoints <- brushedPoints(data, input$brush)
output$hoverInfo <- renderUI({
hover <- input$hover
brush <- input$brush
if (!is.null(brush) && !is.null(hover) &&
hover$x >= brush$xmin && hover$x <= brush$xmax &&
hover$y >= brush$ymin && hover$y <= brush$ymax) {
style <- paste0("position:absolute; z-index:100; background-color: rgba(245, 245, 245, 0.85); ",
"left:", brush$coords_img$xmax + 5, "px; top:", brush$coords_img$ymax + 5, "px;")
wellPanel(
style = style,
p(HTML(paste0("<b> Anzahl markierter Punkte </b>", nrow(rV$brushedPoints), "<br/>",
"<b> brush obere Grenze </b>", brush$ymax, "<br/>",
"<b> brush untere Grenze </b>", brush$ymin, "<br/>",
"<b> brush linke Grenze </b>", brush$xmin, "<br/>",
"<b> brush rechte Grenze </b>", brush$xmax)))
)
}
else {
point <- nearPoints(data, hover, threshold = 10, maxpoints = 1, addDist = TRUE)
if (nrow(point) == 0) return(NULL)
style <- paste0("position:absolute; z-index:100; background-color: rgba(245, 245, 245, 0.85); ",
"left:", hover$coords_img$x + 5, "px; top:", hover$coords_img$y + 5, "px;")
wellPanel(
style = style,
p(HTML(paste0("<b> Eruptionszeit: </b>", point$eruptions, "<br/>",
"<b> Wartezeit: </b>", point$waiting)))
)
}
output$scatterPlot <- renderPlot({
p <- ggplot(data) +
coord_cartesian(xlim = rV$ranges$x, ylim = rV$ranges$y, expand = FALSE)
if(input$density == TRUE)
p <- p + stat_density_2d(aes(waiting, eruptions, fill = stat(level)), geom = "polygon", colour = "white") +
scale_fill_viridis() +
labs(fill = 'Dichte')
else
p <- p + geom_point(aes(waiting, eruptions))
}
titlePanel("Demo 3_Scatterplot"),
htmlOutput('density')
style = "position:relative",
uiOutput("hoverInfo"),
plotOutput('scatterPlot',
click = "click",
dblclick = "dblclick",
brush = brushOpts(id = "brush", resetOnNew = TRUE),
hover = hoverOpts(id = "hover", delay = 250, delayType = "throttle"))
Deletions:
data <- airquality[c('Wind', 'Temp', 'Month', 'Day')]
output$month <- renderUI({
sliderInput(inputId = 'month', label = 'Monat',
min = min(data['Month']), max = max(data['Month']), step = 1,
value = min(data['Month'])
output$day <- renderUI({
sliderInput(inputId = 'day', label = 'Tag',
min = 1, max = max(data$Day[data$Month ""=="" input$month]), step = 1,
value = c(1, max(data$Day[data$Month ""=="" input$month]))
)
# Anpassen der Achsen:
factor = 1,
summand = 0,
data = data
observeEvent(c(input$month, input$day), {
data_tmp <- data[data$Month ""=="" input$month,][c(input$day[1]:input$day[2]),]
rV$factor <- (max(data_tmp$Temp) - min(data_tmp$Temp)) / (max(data_tmp$Wind) - min(data_tmp$Wind))
rV$summand <- (-min(data_tmp$Wind)) * rV$factor + min(data_tmp$Temp)
rV$data$Temp <- (data$Temp - rV$summand) / rV$factor
output$lineGraph <- renderPlot({
p <- ggplot(rV$data[data$Month ""=="" input$month, ][c(input$day[1]:input$day[2]), ]) +
coord_cartesian() +
geom_line(aes(Day, Wind, colour = "Wind")) +
geom_line(aes(Day, Temp, colour = "Temperatur")) +
scale_x_discrete(name = "Tag") +
scale_y_continuous(name = "Wind",
sec.axis = sec_axis(trans = ~. * rV$factor + rV$summand, name = "Temperatur")) +
scale_colour_manual(name = "Legende", values = c("Wind" = 'blue', "Temperatur" = 'red'))
}//
titlePanel("Demo 2_Linegraph"),
htmlOutput('month'),
htmlOutput('day')
plotOutput('lineGraph')