ich war hier: ZEuP » TutoriumGrundlagenStatistikTreemap

Revision history for TutoriumGrundlagenStatistikTreemap


Revision [93356]

Last edited on 2019-01-31 12:28:05 by FabianEndres
Additions:
Eine Tree Map oder im Deutschen ein Kacheldiagramm dient zur Visualisierung hierarchischer Strukturen, welche hierbei durch ineinander verschachtelte Rechtecke dargestellt werden. Somit können anschaulich Größenverhältnisse dargestellt werden, indem die Fläche der Rechtecke proportional zur Größe der darzustellenden Dateneinheit gewählt wird. Um einen gewissen Kontrast herstellen zu können, gibt es die Möglichkeit die Flächen der Rechtecke in verschiedenen Farben zu gestalten.
Erstellt wird in dieser Übung eine Treemap. Als Beispiel wird der mitgelieferte Datensatz //mtcars// verwendet.
In der Benutzeroberfläche werden nun lediglich 4 Dropdown Felder benötigt. Diese legen die auszuwertenden Daten fest.
https://de.wikipedia.org/wiki/Tree_Map
Deletions:
Erstellt werden soll eine Treemap. Als Beispiel wird der mitgelieferte Datensatz //mtcars// verwendet.


Revision [93339]

Edited on 2019-01-29 19:15:14 by FabianEndres
Additions:
{{files download="Treemap.txt"text="Treemap als .txt"}}
Deletions:
{{files download="Treemap.txt"text="Scatterplott als .txt"}}


Revision [93335]

Edited on 2019-01-29 19:08:10 by FabianEndres
Additions:
if(input$vs !="" '""') rV$selectedData <- rV$selectedData[rV$selectedData$vs ""=="" input$vs,]
if(input$am != ""''"") rV$selectedData <- rV$selectedData[rV$selectedData$am ""=="" input$am,]
if(input$gear != ""''"") rV$selectedData <- rV$selectedData[rV$selectedData$gear ""=="" input$gear,]
if(input$carb != ""''"") rV$selectedData <- rV$selectedData[rV$selectedData$carb ""=="" input$carb,]
Deletions:
if(input$vs != '') rV$selectedData <- rV$selectedData[rV$selectedData$vs ""=="" input$vs,]
if(input$am != '') rV$selectedData <- rV$selectedData[rV$selectedData$am ""=="" input$am,]
if(input$gear != '') rV$selectedData <- rV$selectedData[rV$selectedData$gear ""=="" input$gear,]
if(input$carb != '') rV$selectedData <- rV$selectedData[rV$selectedData$carb ""=="" input$carb,]


Revision [93334]

Edited on 2019-01-29 19:06:29 by FabianEndres
Additions:
{{image url="Treemap_1.jpg" width="400" class="right"}}
{{image url="Treemap_2.jpg" width="400" class="left"}}
Deletions:
{{image url="Treemap_1.jpg" width="400" class="left"}}
{{image url="Treemap_2.jpg" width="400" class="center"}}
{{files}}


Revision [93333]

Edited on 2019-01-29 19:03:48 by FabianEndres
Additions:
{{image url="Treemap_1.jpg" width="400" class="left"}}
{{image url="Treemap_2.jpg" width="400" class="center"}}
{{files}}
Deletions:
{{image url="Treemap.jpg" width="400" class="left"}}


Revision [93332]

Edited on 2019-01-29 19:02:59 by FabianEndres
Additions:
**Aufgabe**
Erstellt werden soll eine Treemap. Als Beispiel wird der mitgelieferte Datensatz //mtcars// verwendet.
Sobald mit der Maus über das Diagramm gefahren wird sollen die Informationen über Engine, Transmission, Number of forward gears, Number of carburators und die Variable count angezeigt werden.
**server.R**
Für die Aufgabe Treemap benötigen sie die gleichnamige Bibliothek Treemap. Bitte laden sie diese herunter bevor sie mit der Programmierung beginnen.
//
library(shiny)
library(treemap)
server <- function(input, output) {
data <- mtcars
#data$count <- ave(data$carb, data[,c('vs','am', 'gear', 'carb')], FUN=length) #kann weg
data$one <- 1

rV <- reactiveValues(
selectedData = data,
tile = data.frame()
)

output$vs <- renderUI({
selectInput(inputId = 'vs', label = 'Engine',
c(Choose = '', V_shaped = 0, straight = 1)
)
})

output$am <- renderUI({
selectInput(inputId = 'am', label = 'Transmission',
c(Choose = '', automatic = 0, manual = 1)
)
})

output$gear <- renderUI({
selectInput(inputId = 'gear', label = 'Number of forward gears',
c(Choose = '', sort(unique(data$gear)))
)
})

output$carb <- renderUI({
selectInput(inputId = 'carb', label = 'Number of carburetors',
c(Choose = '', sort(unique(data$carb)))
)
})

output$treemap <- renderPlot({
p <- treemap(rV$selectedData,
index = c('vs', 'am', 'gear', 'carb'),
vSize = 'one',
#vSize = 'count', #kann weg
type = 'index'
)
rV$tile <- p$tm[, c('vs', 'am', 'gear', 'carb', 'vSize', 'x0', 'y0', 'w', 'h')]
p
})

observeEvent(c(input$vs, input$am, input$gear, input$carb), {
rV$selectedData <- data
if(input$vs != '') rV$selectedData <- rV$selectedData[rV$selectedData$vs ""=="" input$vs,]
if(input$am != '') rV$selectedData <- rV$selectedData[rV$selectedData$am ""=="" input$am,]
if(input$gear != '') rV$selectedData <- rV$selectedData[rV$selectedData$gear ""=="" input$gear,]
if(input$carb != '') rV$selectedData <- rV$selectedData[rV$selectedData$carb ""=="" input$carb,]
})

output$hoverInfo <- renderUI({
hover <- input$hover # Zwischenspeicher
if (!is.null(hover)) {
for (i in 1:nrow(rV$tile)) {
if (hover$x >= rV$tile$x0[i] && hover$x <= (rV$tile$x0[i] + rV$tile$w[i]) &&
hover$y >= rV$tile$y0[i] && hover$y <= (rV$tile$y0[i] + rV$tile$h[i])) {

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;")

return(
wellPanel(
style = style,
p(HTML(paste0("<b> Engine: </b>", rV$tile$vs[i], "<br/>",
"<b> Transmission: </b>", rV$tile$am[i], "<br/>",
"<b> Number of forward gears: </b>", rV$tile$gear[i], "<br/>",
"<b> Number of carburetors: </b>", rV$tile$carb[i], "<br/>",
"<b> Count: </b>", rV$tile$vSize[i])))
)
)
}
}
}
})
}
//
**ui.R**
//
ui <- fluidPage(
titlePanel("Demo 6_Treemap"),
fluidRow(htmlOutput('vs')),
fluidRow(htmlOutput('am')),
fluidRow(htmlOutput('gear')),
fluidRow(htmlOutput('carb')),

fluidRow(
style = "position:relative",
uiOutput("hoverInfo"),
plotOutput('treemap',
dblclick = "dblclick",
hover = hoverOpts(id = "hover", delay = 250, delayType = "throttle")))
)//
**app.R**
Die app.R bleibt hier komplett identisch.
// source('server.R', encoding = "UTF-8")
source('ui.R', encoding = "UTF-8")
shinyApp(ui = ui, server = server) //
**{{color text="Hier können Sie den Quellcode ohne Kommentare zusammengefasst herunterladen:" c="#00386a"}}**
{{files download="Treemap.txt"text="Scatterplott als .txt"}}
Deletions:
{{files}}


Revision [93331]

The oldest known version of this page was created on 2019-01-29 18:49:34 by FabianEndres
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki