Posts by Andros

    Hallo :)


    Also das Einfachste wenn es die svg und alles schon gibt ist folgendes:


    Du weist jeden svg eine Id zu.

    z.B. so:

    var diagram1_svg = d3.select('diagram1'); danach das ganze selecten und appanden. diagram1_svg ist dabei eines deiner Diagramme und 'diagram1' ist eine einzigartige ID.


    Das für alle Diagramme mit verschiednen IDs.


    Dann kannst du sie einfach mit folgenden Anzeigen:

    <svg width="200" height="200" id="'diagram1'"></svg>
    <svg width="200" height="200" id="'diagram2"></svg>

    <svg width="200" height="200" id="diagram3"></svg> ...usw

    oder einem div zuordnen:

    <div id=diagram1'></div


    Wenn das nicht so aussieht wie gedacht, melde dich wieder!


    schöne Grüße,

    Andreas

    Hallo :)

    Auf dem Rechner im Seminarraum ist leider quasi gar nichts drauf. Also am beste sollte es auch ihne Python laufen. Das ist manchmal etwas mühsam aber das geht leider nicht anders :/ Ein Video zur Sicherheit würde ich immer machen. Spätestens beim Abgabegespräch im VisLab sollte es aber dann gehen. Wir sehen bevorzugen natürlich immer live demos.


    Wenn möglich, alle Daten dazu geben die ihr her zeigen wollt :) sollten die zu groß sein, geht auch ein Link dazu aber bitte unbedingt bescheid geben damit wir die dann auch herunter laden!


    Zum Template: bitte ausbessern, ja :D


    Schöne Grüße,

    Andreas

    Mit warten meinte ich einfach, dass die Funktionen warten bis alles geladen ist :) Dein Code snippet sieht schon ganz brauchbar aus.


    Also wenn es in den Speicher passt, ist es meistens besser gleich zu beginn alles zu laden um dann später bei der Visualisierung alles möglich ruckelfrei zu haben. Das ist einfach benutzerfreundlicher. Das die Startzeit etwas länger ist wird normalerweise mehr akzeptiert als wenn zwischendurch unschöne Ladezeiten entstehen. Es kann aber durchaus sein, dass die Files noch klein genug sind und man die Ladezeiten zwischendurch nicht merken würde. Das kann ich dir jetzt so auf anhieb auch nicht verraten. Das müsstest du probieren.


    Hoffe das hilft dir etwas! Sonst weiter Fragen!


    schöne Grüße,

    Andreas

    Hallo :)


    Sind die Files festgelegt oder kann sich deren Anzahl noch ändern?


    Wenn es immer die gleichen csv Files sind fallen mir auf die schnelle zwei Lösungen ein:

    1)

    Promise.all([
    d3.csv("erstes File"),
    d3.csv("zweites File"),

    d3.csv("und so weiter"),

    ]).then(function(_data) {
    // _data ist enthaellt alle geladenen Daten. _data[0] vom ersten File, _data[1] vom zweiten,...
    }).catch(function(err) {
    // falls du error handling machst, kommt der hier rein :D
    })


    2)

    d3.queue()
    .defer(d3.csv, "erstes File")
    .defer(d3.csv, "zweites File")

    .defer(d3.csv, "und so weiter")
    .await(function(error, erstesFile, zweitesFile, undSoWeiter) {
    if (error) {
    // falls du error handling machst, kommt der hier rein :D
    }
    else {
    //hier kannst du dann in der "erstesFile" Variable die Daten vom ersten File, usw.
    }
    });


    Bei beiden Versionen sollte zuerst gewartet werden bis alle Daten geladen sind bevor es weiter geht :) Sollte es so doch nicht klappen oder die csv Dateien Variable sein, melde dich einfach wieder!


    schöne Grüße,

    Andreas

    Hallo :)


    Das ist schon eine stolze Größe! Vielleicht werden wir die maximal Größe noch etwas nach oben verschieben. Zur Not passt es auch wenn ihr es extern hoch ladet. Solange wir bescheid wissen, passt es. Aber auf keinen Fall nichts abgeben sondern dann zumindest ein Textfile mit dem Link. Wenn sich da noch etwas ergibt melde ich (oder Manuela) sich nochmal.


    Bin schon sehr gespannt :D

    schöne Grüße,

    Andreas

    Hatte aus irgendeinem Grund im Kopf, dass die Übung 1ECTS gibt. Bei 1,5 sind es natürlich 0,5 für die letzte Aufgabe und das sind dann 12,5 Stunden pro Person :)

    Hallo :)


    Also:

    - Die Punkte die es bei jeder Aufgabe gibt sind gleich also sollte der Aufwand sich auch ca. im gleichen Rahmen bewegen. Also ca. 1/3 ECTS sind ungefähr 8,4 Stunden pro Person (Ob das einhaltbar ist hängt natürlich immer vom suchen nach Fehlern oder anderen Faktoren ab)


    - Am besten ihr überlegt euch eine These zu den Wahldaten (z.B.: "Die Wahlverteilung ist von ______ abhängig" oder "Die Verteilung der Wähler korreliert mit _________ (z.b: dem Wurstkonsum oder was auch immer. Es soll vielleicht nichts komplett aus den Haaren herbeigezogenes sein (wie mein Beispiel) :D Aber wenn etwas Spaß dabei ist, macht es das ganze auch interessant) oder "Der Ausgang der Wahlen erklärt den Anstieg/Abfall von _________ über die Zeit. Also überlegt euch etwas schönes, dass ihr danach mit der Visualisierung belegt oder falsifiziert. Ihr könnt auch mehrere Wahlergebnisse dafür nutzen, aber immer im Zusammenhang mit mindestens einer weiteren Variable.


    - Die folgenden Punkte sollen behandelt werden:

    • Was war Ihre Fragestellung? Hatten Sie bereits eine Hypothese dazu?
    • Welche Daten haben Sie für die Analyse verwendet? Welche Datenvorverarbeitung war nötig (z.B. fehlende Werte ergänzen, Vereinheitlichung der Datenformate etc.)?
    • Welche Visualisierungsmethode und ggf. welche Interaktionsmöglichkeiten haben Sie gewählt und warum?
    • Wie wurde der Prototyp umgesetzt?
    • Was sind die Ergebnisse (d.h. die Antworten auf Ihre Fragen)?

    Wie genau ihr das macht, ist euch überlassen. Wenn ihr z.B.: ein Notebook dafür nutzt (wie in der vorherigen Aufgabe), ist könntet ihr auch das benutzen wenn ihr eine schöne Storyline damit aufbaut. Wenn es interessant ist, dann wird es passen :) Spätestens beim Abgabegespräch sehen wir dann ob ihr die Ergebnisse auch selbst erzeugt habt.


    - Das ist schwer zu sagen. So viele wie nötig sind um eure Aufgabe schön lösen zu können. Für manches reicht ein großer Plot auf einer Karte mit unterschiedlichen Darstellungen darauf, für anderes braucht man dann einen Plot für jede Partei oder noch mehr. Das hängt ganz davon ab was ihr machen wollt. Eine Analyse der Ergebnisse gehört aber immer dazu. Also woran erkennt ihr, wie und warum eure These richtig/falsch ist und wie seit ihr darauf gekommen.


    Wenn ich etwas vergessen habe wird es Manuela ergänzen :D

    Sollte etwas unklar geblieben sein, meldet euch einfach wieder!


    schöne Grüße,

    Andreas

    Hallo Jakob :)


    Ja! Um eine schöne Anzahl an Zuhörern zu bekommen ist leider eine Anwesenheitspflicht bei allen Terminen notwendig (Letztes Jahr gab es für unentschuldigtes Fehlen einen Abzug bei den Präsentationspunkten! ob es diesmal wieder so ist weiß ich noch nicht genau). Sollte jemand an einen der Tagen verhindert sein, meldet euch bitte bei uns :) Wir werden auch beide Tage benutzen damit jeder genug Zeit hat sein Projekt vorzutragen.


    schöne Grüße,

    Andreas


    PS: Sorry wegen der späten Antwort!

    Hallo :D


    Die Lösung wurde gefunden. Nachdem wir nach und nach die geforderte Struktur aufgebaut haben (Durch Ausführung der produzierten exe und dem Ablesen der nicht gefundenen Module). Nachdem es dann bei mir so geklappt hat, der ModuleNotFoundError: No module named 'encodings' aber dennoch nicht behoben war, musste noch ein anderes Problem vorliegen. Dieses Problem bestand darin, dass wegen PyQt5, mit Python in der Version 3.6 gearbeitet wurde. PyQt5 (PyQt5 . hat (oder hatte) scheinbar Probleme mit Version 3.7). Das wurde behoben und mit dem Update auf 3.7 war auch das Modulproblem dann gelöst.


    Damit auch hier die Lösung steht :D


    schöne Grüße,

    Andreas

    Hallo :)

    Ich glaube hier müssen wir versuchen Fehlerquellen aus zu schließen.

    In Errors.txt gibt es diese Zeile:

    ModuleNotFoundError: No module named 'TextAnalyzer'

    Versuche es einmal mit TextAnalyzer in den Hidden Imports.


    Benutzt du Distributionen wie Anaconda? Dann kann es sein, dass du pyInstaller auch damit Installieren musst damit es richtig funktioniert (z.B.: conda install -c conda-forge pyinstaller).

    Manchmal hilft es merkwürdigerweise auch, wenn man alle erzeugten Files löscht und komplett neu erstellt.


    Wenn das nicht der Fehler war, melde dich bitte nochmal! Das Problem wird sich sicher finden lassen.

    schöne Grüße,

    Andreas

    Hallo :)

    "pca.components_" gibt ansich die principal axes an (https://scikit-learn.org/stabl…rn.decomposition.PCA.html). Also die Richtungen mit der höchsten Varianz in den Daten (sortiert!). "explained_variance_" gibt dabei den Wert der Varianz an. Die PCA transformiert die Daten in einen neuen Raum. Sie gibt dir auch eine Transformationsmatrix an, mit der diese Transformation gemacht wird. Diese kann man auch nutzen um die Achsen in den neuen Raum zu transformieren. Normalerweise werden die Daten zentriert und der Nullpunkt ist in der Mitte. Deswegen muss man den Nullpunkt mit transformieren damit die Pfeile richtig dargestellt werden (nur bei dem Projektionsanatz! Sonst passt es). In den Abbildungen wurde der Projektionsansatz gewählt, weil er sehr übersichtlich ist und gut interpretiert werden kann.


    Hoffe das hilft dir, ansonsten einfach weiter Fragen :)

    schöne Grüße,

    Andreas

    Hallo :)


    Bin noch dabei meine Lösung mit Manuela ab zu gleichen. Sie ist bis Mitte nächster Woche nicht in der Gegend. Ich bin aber guter Dinge, dass ich morgen etwas mehr dazu schreiben kann. Schaut auf jeden Fall, dass ihr alles geforderte herausfiltert.


    Heraus zu filtern sind alle Wahlzettel Zeilen, alle Zusammenfassungen auf Österreich und Bundeslandebenen. Es gibt aber auch noch eine kleinere Unterteilung in Untergruppen. Darauf aufpassen!



    Bevor ich aber etwas konkretes zu den Werten sage, gehen wir lieber eine Nummer sicher und vergleichen zuerst intern die Lösungen :)


    schöne Grüße,

    Andreas

    Hallo :)


    Gut! Dann könnte der Fehler bei uns liegen! Wir hatten zuerst fehlerhafte Daten mit der auch die ganzen Bilder erstellt wurden. Ich werde das mal kontrollieren und dann hier bescheid geben :) Vielen Dank fürs melden!


    schöne Grüße,

    Andreas

    Hallo :)


    Du hast recht! Das ist vermutlich dadurch geschuldet, dass die Daten zu Beginn fehlerhaft waren. Das wird in der nächsten Zeit ausgebessert :) Danke für den Hinweis!


    schöne Grüße,

    Andreas

    Hallo :)


    Danke fürs melden! Scheinbar ist da etwas durcheinander gekommen. Die Pronzentangaben sollten aber passen. Du kannst gerne die offiziellen Zahlen benutzen. Ich werden einmal schauen was da passiert ist und es gibt dann möglicherweise ein update auf der Aufgabenseite


    schöne Grüße,

    Andreas

    Das es nur über einen Webserver funktioniert ist normal :) Wenn alles so klappt wie es soll, wird es am Abgaberechner auch drauf sein!


    Schöne Grüße

    Andreas