Hervorhebung von Daten in RBokeh

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

Antworten
Isegrimm
Beiträge: 4
Registriert: Mo Mär 16, 2020 9:52 am

Hervorhebung von Daten in RBokeh

Beitrag von Isegrimm »

Guten Morgen ...

... vorab die Entschuldigung, wenn ich hier vielleicht "Off-topic" poste, aber keine Rubrik erschien mir passend.

Ich bin absoluter Newbie in R und RStudio und versuche mich gerade an der Visualisierung mit einem Scatterplot mit "rbokeh".

Mit Hilfe der Zeile ...

Code: Alles auswählen

 ly_points(
    data = c(filter(EVA_2019, str_detect(SEMINAR, "342|344|345|346|347"))), SEMINAR, EVALUATIONSWERT, color = "#008000", hover = c(SEMINAR ,EVALUATIONSWERT, SEM_VON))
... kann ich zwar die bestimmten Seminare (342,344,...) aus der Tabelle gesondert anzeigen und "einfärben" aber eben nur die.

Ich möchte aus der Tabelle ALLE Seminare mit ihren Werten darstellen, und nur die oben genannten eingefärbt hervorheben.

Und ich finde die Lösung hierzu nicht.

Grüße
Stefan
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hervorhebung von Daten in RBokeh

Beitrag von bigben »

Hallo Stefan,

herzlich willkommen im Forum. Soweit die Suchfunktion das zeigt, handelt es sich um die erste Frage zu RBokeh, die hier je gepostet wurde. Das ist natürlich erstmal eine schlechte Voraussetzung für gute Antworten. Umso mehr gilt, was hier ohnehin schon immer gepredigt wird: Stell ein komplettes, reproduzierbares Minimalbeispiel ein, damit man es leicht hat, Lösungsvorschläge selbst zu probieren, bevor man sie postet:viewtopic.php?f=20&t=11

Ohne je rbokeh heruntergeladen und ausprobiert zu haben würde ich zwei Dinge ausprobieren.
1. ob man ly_points zweimal hintereinander aufrufen kann: Beim ersten Mal alle Punkte ganz ohne filter in einer Farbe, danach nochmal mit filter in der Hervorhebungsfarbe.
2. ob man dem color-Argument nicht nur einen Farbwert, sondern ein intelligent gestalteten vector übergeben kann, etwa wie in base-R:

Code: Alles auswählen

plot(1:8, pch=16, col=c("blue", "blue", "red", "violet", "black", "blue", "grey", "grey"))
. Wie man den Farbwertevektor intelligent gestalten könnte weiß ich natülich ohne Beispieldaten auch nicht.Die ifelse-Funktion ist immer ein heißer Kandidat.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Hervorhebung von Daten in RBokeh

Beitrag von Athomas »

Ich kenne "rbokeh" (Groß- und Kleinschreibung im Zusammenhang mit R bitte nicht vernachlässigen!) nicht, finde aber (zumindest die Beispielplots) interessant und werde es bei Gelegenheit ausprobieren!

Dafür würde ich auch Dein Problem nehmen - wenn ich es könnte :( !

Du solltest bigbens Bitte nach einem "reproduzierbaren Minimalbeispiel" unbedingt nachkommen...
Wenn Du lediglich die "Spezialpunkte" anders einfärben willst - Du kannst sie doch kennzeichnen und die Farbe danach vergeben!?
Isegrimm
Beiträge: 4
Registriert: Mo Mär 16, 2020 9:52 am

Re: Hervorhebung von Daten in RBokeh

Beitrag von Isegrimm »

Hallo bigben ... hallo Athomas ...

... ich hatte wohl keine Mail zu bigbens Post bekommen ... sonst hätte ich geantwortet. :?

Umso mehr freue ich mich, das ich Euch eine Selbstlösung präsentieren kann.

Mein Fehler war ein simpler Anfängerfehler:

Da man die Layer auch wechseln kann, hatte ich den "bunten" Layer nur verdeckt.

Die obere "ly_points"-Zeile färbt alle Seminarereignisse in weiß ... die untere entsprechend der Anzahl der Ereignisse bunt. Da die ausgewählten Seminare auch mit Ereignissen in der ungefilterten Zeile deckungsgleich sind, hatte ich die hervorzuhebenden Seminare schlichtweg weiß "übermalt".

Ein vertauschen der Layer brachte das gewünschte Ergebnis.

Hier der Code:

Code: Alles auswählen

library(rbokeh)
library(ggplot2)
library(tidyverse)

EVA_2019 <- read_excel("C:/Users/<USER>/Own/INT/R_ENVIRONMENT/{SOURCES}/XLSX/EVA_2019.xlsx")

figure(width = 2000, height = 600, title = "SEMINAREVALUATION", xlab = "Seminar", ylab = "Evaluationswert",xaxes = "below", legend_location = NULL) %>%
  
  ly_points(
    data = EVA_2019, SEMINAR, EVALUATIONSWERT, color = "#ffffff", glyph = 21, hover = c(SEMINAR ,EVALUATIONSWERT, BEGINN, ANSPRECHPARTNER)) %>%  
  
  ly_points(
    data = c(filter(EVA_2019, str_detect(SEMINAR, "342|344|345|346|347|348|349|351|600|602"))), SEMINAR, EVALUATIONSWERT, color = SIFA, glyph = 20,hover = c(SEMINAR ,EVALUATIONSWERT, BEGINN, ANSPRECHPARTNER)) %>%
  
  ly_abline(h=2.1, color = "red", type = 2) %>%
  
  # ----------------------------------------

theme_axis("x", major_label_orientation = 90, major_label_text_font_size = "6pt") %>%
theme_plot(background_fill_color = "#E6E6E6", outline_line_color = "black") %>%
theme_title(text_color = "#004994", text_font_size = "30pt", text_baseline = "bottom", text_font_style = "bold", text_align = "right", text_font = "Helvetica", text_alpha = 0.5,)
Sollte Rbokeh bei Euch häufiger Anwendung finden (es ist wirklich sehr demonstrativ) ... könnte man ja einen eigenen Thread aufbauen. ;)
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: Hervorhebung von Daten in RBokeh

Beitrag von bigben »

Hallo Stefan,

das ist ein sehr schönes Beispiel, warum reproduzierbare Beispiele so wichtig sind - aus Deinem ersten Post ließ sich wirklich nicht entnehmen, dass Du ly_points bereits mehrfach aufgerufen hattest.

Was rbokeh angeht - wir würden uns natürlich freuen, wenn Du hier wärest, wenn die nächste Frage dazu kommt ;)

Viele Grüße,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Isegrimm
Beiträge: 4
Registriert: Mo Mär 16, 2020 9:52 am

Re: Hervorhebung von Daten in RBokeh

Beitrag von Isegrimm »

bigben hat geschrieben: Mi Mär 18, 2020 11:36 am ...

Was rbokeh angeht - wir würden uns natürlich freuen, wenn Du hier wärest, wenn die nächste Frage dazu kommt ;)

Viele Grüße,
Bernhard
Hi Bernhard ...

... wenn ich helfen kann, dann immer gerne ...

Gruß
Stefan
Antworten