Seite 1 von 1

Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 08:39
von G-Rizzle
Hi!

wie der Titel sagt, suche ich eine Bibliothek, mit der ich große Datenmengen plotten kann.
Die Daten liegen in einer Textdatei als xyz-Koordinaten vor (Hintergrund: das sind Aufnahmen eines Konfokalmikroskops, das genutzt wird, um sehr genaue Höhentopografien von (in meinem Fall Metall-3Dgedruckter) Oberflächen zu erhalten.)

Eine Datei hat etwa 200 MB und 20,000,000 Einträge. Plotly und Matplotlib haben das auf die ersten Versuche nicht geschafft.
Außerdem möchte ich jedes Pixel abhängig vom Höhenwert unterschiedlich einfärben.



Hat jemand von euch eine Idee, was ich dazu nutzen könnte?

Danke im Voraus!!

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 09:50
von __deets__
Auf meinem 4K-Monitor habe ich knapp 8 Millionen Pixel. 20000000 Datenpunkte lassen sich da also im Grund nicht darstellen. Darum die Frage: kannst du die nicht downsampeln? Oder einen Ausschnitt darstellen?

Sonst fällt mir noch VTK ein. Das ist zur Visualisierung von Daten aus dem medizinischen Bereich, und unten drunter AFAIK in C++ geschrieben.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 09:53
von G-Rizzle
hi deets,

ja, ich fürchte dass ich das so machen muss. Vielleicht Zehnteln. Mal sehen.

vtk sehe ich mir mal an

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 10:35
von __deets__
Einfach nur zehnteln ist schwierig. Kann ok sein, wenn du nur einen groben Überblick haben willst. Aber wenn du feine Strukturen nicht falsch repräsentieren willst, musst du komplexere Algorithmen wie zb bikubische Filter benutzen.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 10:36
von narpfel
@G-Rizzle: Soll das interaktiv sein oder am Ende nur ein PNG rauskommen? Und sind die xy-Koordinaten in einem schönen Rechteckgitter angeordnet?

Für statische Bilder hatte ich bei einer 28 MPixel großen Grafik absolut keine Probleme mit matplotlib. Dauert nur ein paar Sekunden mit `imsave`:

Code: Alles auswählen

image = np.random.random((5000, 4000))
plt.imsave("image.png", image, cmap=...)
Und ein `plt.plot` kommt meiner Erfahrung nach auch mit mehreren Millionen Punkten klar, wenn man die Grafik nicht als Vektorgrafik speichert und `","` als Format benutzt.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 10:47
von tonikae
Schon "Plotly" ausprobiert?
https://plotly.com/
https://plotly.com/python/
https://www.tutorialspoint.com/plotly/index.htm

Das ist für große Datenmengen und Interaktionen gemacht.
Ausserdem ist es für mehrere Programmiersprachen verfügbar.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 10:51
von __deets__
@tonikae: er schreibt ja, dass er das probiert hat.

Wir benutzen das auch, und es ist gut. Aber nutzt den Browser als Engine. Das gibt viel Flexibilität, aber erhöht auch klar den Overhead. So weit ich weiß werden da ja die Daten einfach in HTML bzw JS Strukturen gerendert.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 11:06
von tonikae
Oops...habe ich glatt überlesen.
Ich habe nur Matplotlib registriert....mein Fehler

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 11:41
von G-Rizzle
narpfel hat geschrieben: Montag 6. Dezember 2021, 10:36 @G-Rizzle: Soll das interaktiv sein oder am Ende nur ein PNG rauskommen? Und sind die xy-Koordinaten in einem schönen Rechteckgitter angeordnet?

Für statische Bilder hatte ich bei einer 28 MPixel großen Grafik absolut keine Probleme mit matplotlib. Dauert nur ein paar Sekunden mit `imsave`:

Code: Alles auswählen

image = np.random.random((5000, 4000))
plt.imsave("image.png", image, cmap=...)
Und ein `plt.plot` kommt meiner Erfahrung nach auch mit mehreren Millionen Punkten klar, wenn man die Grafik nicht als Vektorgrafik speichert und `","` als Format benutzt.
Hi, danke dafür

was meinst Du mit der "plt.plot, wenn nciht als Vektorgrafik gespeichert"?

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 11:46
von narpfel
@G-Rizzle: Pixelgrafik, Vektorgrafik. Wobei `plt.plot` wohl für den Anwendungszweck eher nicht geeignet ist.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 13:14
von __blackjack__
Wobei man `plt.plot()` aber auch sagen kann, dass die Daten als Pixel gerendert werden sollen (während der Rest Vektorgrafik bleibt), wenn man besonders viele Datenpunkte hat. Ansonsten sind für mehr Datenpunkte als man sinnvoll sehend erkennen kann auch 2D-Histogramme und `plt.hexbin()` sinnvolle Darstellungsmöglichkeiten.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 13:17
von __deets__
@__blackjack__ ich denke mal das sind fundamental 3D Daten, die nicht durch aggregation sinnvoll darstellbar sind.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Montag 6. Dezember 2021, 13:29
von nezzcarth
Wenn es nicht unbedingt python sein muss, schlage ich gnuplot vor. Das ist für solche Zwecke seit Jahrzehnten etabliert und kommt mit der Datenmenge gut klar.

Re: Bibliothek zum plotten großer Datenmengen gesucht

Verfasst: Mittwoch 8. Dezember 2021, 12:45
von G-Rizzle
Danke nochmal für eure Antworten!

Ich habe mich jetzt für open3d entschieden, eine Bibliothek zum erstellen von Objekten aus großen Pointclouds.

Selbst interaktive Darstellung in 3D ist nahezu ruckelfrei (selbst bei >20,000,000) Punkten möglich