Was ich von Nebeneinander-Containern halte? Abstand.

by Tanya Fischer

Einer der großen Pluspunkte von Tableau ist sicherlich das schnelle Erstellen von Visualisierungen und Dashboards per Drag & Drop. Einfach schnell drei Arbeitsblätter auf ein Dashboard ziehen, den Dashboardtitel anzeigen lassen und schon haben wir unsere Ansammlung von Analysen auf einem Dashboard zusammengebracht und freundlicherweise hat Tableau uns auch alle Filter direkt an der Seite in einem eigenen Bereich angeordnet:

Das wirkt auf den ersten Blick doch erst einmal praktisch und wir haben schnell und einfach unser Dashboard gebaut. Wie aber so oft bringt "schnell und einfach" zu einem späteren Zeitpunkt gerne das ein oder andere Problem mit sich.

Schauen wir uns doch einmal die Objekthierarchie unseres Dashboards an:

Wir sehen hier die einzelnen Objekte des Dashboards farblich den Abschnitten in der Objekthierarchie zugeordnet. Unser erster Grundlagencontainer (braun) ist ein Nebeneinander-Container, in diesem liegt ein vertikaler Container (grün), in diesem wiederum unser Titel und ein horizontaler Container (gelb), in welchem einerseits ein Nebeneinander-Container (pink) mit unseren Arbeitsblättern als auch ein vertikaler Container (blau) mit unseren Filtern und Legenden liegt.
Angemerkt sei an dieser Stelle, dass Tableau für unseren ersten Nebeneinander-Container eine äußere Füllung von 8 auf allen Seiten standardmäßig einstellt. Das lässt sich bei Bedarf natürlich recht schnell anpassen, sei an dieser Stelle nur schon einmal als Randnotiz vermerkt.
Die Größe der Arbeitsblätter in meinem pinken Nebeneinander-Container kann ich nun zwar durch Ziehen an den Rändern verändern, habe aber nicht die Möglichkeit, die Größe pixelgenau einzustellen. Das ist zum Beispiel dann wichtig, wenn ich ein leeres Dashboard-Objekt als Trennlinie nutzen möchte. Durch Ziehen im Nebeneinander-Container kann ich mein leeres Objekt kleinstmöglich auf eine Breite/Höhe von 32 Pixeln ziehen, benötige aber für meine Trennlinie eher etwas in Richtung 10 Pixel. Dies funktioniert erst wieder, wenn ich einen horizontalen oder vertikalen Container in meinen Nebeneinander-Container lege. Und wenn ich dann schon horizontale und vertikale Container in meine Nebeneinander-Container lege, frage ich mich doch, wozu brauche ich diese übergeordneten Nebeneinander-Container dann überhaupt?

Denn zusätzlich kann diese simple Drag & Drop Methode ziemliches Chaos in der Objekthierarchie anrichten. Nehmen wir einmal an, dass ich gar keine Filter auf dem Dashboard haben möchte und entsprechend den gesamten vertikalen Container (blau) mit den Filtern lösche. Aber dann fällt mir ein, dass ich ja doch eigentlich gerne auf das Land filtern möchte und ich füge diesen einzelnen Filter wieder hinzu. In unserer Objekthierarchie wird durch das erneute Hinzufügen wieder ein Container mit dem ausgewählten Landesfilter hinzugefügt, jedoch an anderer Stelle wie ein kleiner Vorher-Nachher Vergleich zeigt:

Wie wir sehen, hat Tableau unseren vertikalen Filter Container nun auf einer Ebene mit unserem grünen vertikalen Container angeordnet und dadurch einen zusätzlichen horizontalen Container (rot) kreiert. Wenn ich nun aber erneut entscheide, keinen blauen Filter-Container zu benötigen und diesen lösche, bleibt der rote horizontale Container weiterhin erhalten. Da Dashboarding oft ein iterativer Prozess ist oder man zu Beginn vielleicht etwas unentschlossen ist, kann es vorkommen, dass man Sachen löscht, wieder hinzufügt, wieder löscht, usw... Wenn ich das aber ein paar mal mache und jedes mal wieder eine neue Container-Ebene aufgemacht wird, sieht das irgendwann plötzlich so aus:

Gerade beim Bauen komplexerer Dashboards, die vielleicht den einen oder anderen Iterationsschritt durchlaufen müssen, ist es hilfreich, eine klare Struktur in der Objekthierarchie zu behalten. Die einfache Drag & Drop Methode hat sicherlich ihre Vorteile, gerade, wenn man nur schnell ein paar Visualisierungen auf einem Dashboard zusammenbringen will, ohne viele Gedanken an eine nachhaltige Strukturierung zu verschwenden. Wenn man sich das Dashboarding allerdings angenehmer gestalten möchte und zusätzlich damit angeben möchte, dass man die gleiche Dashboardingmethode wie Tableau Zen Master Andy Kriebel nutzt, empfehle ich folgendes Vorgehen:

1) Als Grundlage legen wir einen unverankerten horizontalen oder vertikalen Container auf unser leeres Dashboard. In den Layouteinstellungen ändern wir die x- und y-Koordinaten beide auf 0, sodass die linke obere Ecke unseres Containers auf der Ecke unseres Dashboards liegt. Zusätzlich passen wir die Breite und Höhe des Containers auf die gleiche Breite und Höhe unseres Dashboards an:

2) Für eine leichtere Positionierung weiterer Objekte legen wir als Platzhalter ein leeres oder ein Textobjekt als Nebeneinander-Objekt in unseren Grundlagencontainer. Dadurch entsteht kein zusätzlicher Nebeneinander-Container, da unser Platzhalter-Objekt bereits im vertikalen Container zu Hause ist. Zur besseren Erkennung habe ich das leere Objekt in diesem Beispiel einmal grau eingefärbt. Gleichzeitig sehen wir keine automatisch hinzugefügten Container in unserer Objekthierarchie:

3) Statt sich den Dashboardtitel über die entsprechende Funktion unter den Dashboardobjekten anzeigen zu lassen, nutzen wir für den Titel ein Textobjekt, welches wir oberhalb unseres Platzhalters als Nebeneinander-Objekt ablegen. Damit wohnt in unserem vertikalen Grundlagencontainer jetzt nicht nur mehr der Platzhalter, sondern auch ein Textobjekt, quasi eine WG.

4) Wenn wir uns das zweite Bild dieses Blog noch einmal anschauen, sehen wir, dass wir unterhalb des Titels nun einen horizontalen Container (oben in gelb) benötigen, der dann links die Arbeitsblätter und rechts die Filter beinhalten soll. Dazu kann ich jetzt ganz einfach zwischen meinen Titel und den Platzhalter einen horizontalen Container legen. Zur besseren Erkennung habe ich diesen hier mit einem Rahmen versehen:

Unseren Platzhalter brauchen wir nun nicht mehr an dieser Stelle, können ihn uns aber innerhalb des neuen gelben Containers zu Nutze machen. Ich nehme also mein leeres Objekt und ziehe es in meinen horizontalen Container. Dadurch wird dieser erst einmal minimiert, was sich jedoch im weiteren Verlauf von selbst wiederherstellen wird.

5) Um den Filtern im weiteren Verlauf direkt ein Zuhause zu geben, benötige ich nun einen vertikalen Container in meinem horizontalen Container. An dieser Stelle sei erwähnt, dass man in dieser Methode immer zunächst einen Container für die Filter einrichten sollte, ehe man Arbeitsblätter auf das Dashboard zieht. So verhindern wir, dass Tableau auf der Suche nach einem geeigneten Ort wieder einen Nebeneinander-Container erstellt und diesen dann im ungünstigsten Fall sogar noch hinter unserem Grundlagen-Container versteckt. Deshalb ziehen wir nun einen neuen vertikalen Container als Nebeneinander-Objekt rechts neben meinen Platzhalter in den gelben Container - dorthin, wo Tableau mir ein graues Kästchen als Ablage-Indikator anzeigt:

Unser gelber Container wird damit wieder auf die komplette Höhe gestreckt. Zur besseren Erkennbarkeit umrahme ich unseren neuen vertikalen Container in blau. An dieser Stelle bietet es sich auch an, einen zusätzlichen Platzhalter in diesen Container zu legen, um die Platzierung weiterer Objekte später zu vereinfachen. Hier wieder als leeres Objekt, blau eingefärbt:

6) Für die Container-Struktur meiner Arbeitsblätter benötige ich jetzt zwei zusätzliche vertikale Container, die wie Spalten fungieren, in denen jeweils zwei Arbeitsblätter untereinander liegen. Ich starte also zunächst mit einem vertikalen Container, welchen ich zwischen grauen Platzhalter und blauen Filter-Container lege. Dort kann ich nun auch (endlich) mein erstes Arbeitsblatt hineinlegen und unter dieses Blatt, in den gleichen Container direkt mein zweites Arbeitsblatt:

Wir sehen, dass unsere Filter direkt den Weg in den für sie vorgesehenen Container gefunden haben und können nun auch guten Gewissens sowohl den blauen Platzhalter als auch den grauen Platzhalter vom Dashboard entfernen.
Diesen Schritt wiederholen wir nun noch einmal, also fügen wieder einen vertikalen Container links neben unserem blauen Filter-Container ein, um unsere verbleibenden beiden Arbeitsblätter untereinander auf das Dashboard zu bringen. Gegebenenfalls verändert Tableau die Breite unserer drei vertikalen Container an dieser Stelle zu einer eher unpraktischen Ansicht. Entsprechend empfiehlt es sich hier, die Breite der einzelnen Container und Objekte festzulegen. Da unser Dashboard nun gänzlich ohne automatisch generierte Nebeneinander-Container auskommt, können wir in jedem vertikalen Container die Höhe der Objekte und in jedem horizontalen Container die Breite pixelgenau anpassen. Die Möglichkeit, die Größe durch Ziehen an den Rändern anzupassen, ist weiterhin gegeben. Unser finales Produkt sieht dann in etwa so aus:

Wir haben nun also eine klare Struktur in der Objekthierarchie, die nur Objekte enthält, die wir selbst auf das Dashboard gelegt haben und können die Höhe unserer Arbeitsblätter pixelgenau anpassen. Wenn mir danach wäre, könnte ich meinen Filter-Container durch eine Trennlinie abgrenzen, indem ich die Breite eines leeren Objekts auf 10 reduziere und den Hintergrund auf mittelgrau einstelle. Außerdem kann ich Container löschen und wieder hinzufügen, ohne dass Tableau die Containerhierarchie mit unnützen Containern befüllt (an dieser Stelle noch einmal der Reminder, erst einen Container für die Filter zu erstellen, ehe ihr die Arbeitsblätter auf das Dashboard zieht, siehe Punkt 5).

Nimmt diese Methode mehr Zeit und Überlegungen in Anspruch, die sich für schnelles Dashboard mit zwei Visualisierungen und ohne viel Interaktion vermutlich nicht rechnet? Ja. Ist das vielleicht auch eine Übungssache und wenn ich nur einmal im Jahr besagtes schnelles Dashboard mit zwei Visualisierungen und ohne viel Interaktion baue, kann mir eine strukturierte Objekthierarchie herzlich egal sein? Auch ja. Würde ich für das regelmäßige Erstellen, Veröffentlichen und Teilen meiner - gerne auch mal komplexeren - Dashboards jemals wieder auf Nebeneinander-Container umsteigen? Auf gar keinen Fall.