Bitte zitieren Sie die Software, wenn Sie sie in Ihrer wissenschaftlichen Veröffentlichung verwenden:
Dive ist ein interaktiver 3D -Web -Viewer von bis zu Millionen Punkten auf einem Bildschirm, der Daten darstellt. Es soll eine Wechselwirkung zur Anzeige hochdimensionaler Daten liefern, die zuvor in 3D eingebettet wurden. Zum Einbettung (nichtlineare Dimensionalitätsreduzierung oder vielfältiger Lernen) empfehlen wir Largevis (einen neuen Algorithmus von Microsoft Research) oder TSNE.
Für eine Online -Demo klicken Sie hier. Sie können diese Website auch verwenden, um Ihre Datensätze hochzuladen, die dem unten beschriebenen Datenformat einhalten.
NEU: Eine Pipeline für Linux, die aus Ligvis und Dive besteht, wurde hier veröffentlicht: https://github.com/sonjageorgieveska/embed-dive.
Der einfachste Weg ist, den Code herunterzuladen und index.html mit Ihrem Browser zu öffnen. Versuchen Sie es, indem Sie Datensätze aus dem Datenordner hochladen. Die Anwendung kann vollständig offline funktionieren.
Um es mit einem lokalen HTTP -Server zu verwenden:
npm install connect serve-staticnode server.js einhttp://localhost:8082/index.html ein npm install aus, um alle Build -Anforderungen zu installierengrunt , um zu bauen. Das resultierende kompilierte JavaScript wird in dist/ und die Dokumente in doc/ sein Jeder Punkt hat 3 Koordinaten und eine eindeutige ID. (Für eine beste Ansicht sollten die Absolutwerte der Koordinaten kleiner als 1 sein. Bei der Verwendung von Ligvis mit Ähnlichkeiten (Gewichten) als Eingabe kann dies erreicht werden, indem die Ähnlichkeiten mit kleiner als 1 neu scalieren.)
Ein Punkt hat auch Properties :
Properties sind eine Liste von Zeichenfolgen, die leer werden können. Jede Zeichenfolge, die eine Zahl ist, repräsentiert den Wert einer jeweiligen numerischen Eigenschaft. Jede Zeichenfolge, die keine Zahl ist, repräsentiert den Wert einer jeweiligen kategorialen Eigenschaft. Diese Werte werden im Farbabschnitt der Benutzeroberfläche der Webseite verwendet. Wenn der Benutzer eine Eigenschaft auswählt und die Eigenschaft kategoriale (nicht numerische) Werte hat, wird jeder Punkt in einer Farbe gefärbt, die den Wert der kategorialen Eigenschaft darstellt. Wenn die Eigenschaft numerisch ist, ist nach der Auswahl der Farbe jeder Punkt mit einem Farbton der ausgewählten Farbe gefärbt. Die Intensität der Farbe entspricht der Intensität der ausgewählten Eigenschaft für den jeweiligen Punkt.Ein Knoten kann auch ein Bild zugeordnet haben. Weitere Informationen finden Sie im Abschnitt "Datenformat".
Ein Benutzer kann nach Verwendung des Suchabschnitts nach allen Punkten suchen, die in seinen IDs, Namen oder Eigenschaften ein bestimmtes Substring enthalten. Dann werden alle Punkte, die ein Match sind, rot und der Rest grau. Man kann auch nach Booleschen Ausdrücken regulärer Ausdrücke suchen. Ein Beispiel für eine boolesche Expression ist xx AND yy OR NOT zz , wobei xx, yy und zz regelmäßige Ausdrücke sind und nicht mehr als und, was mehr als oder bindet. In diesem Fall werden alle Punkte, die in ihren Metadaten die regulären Espressungen XX und YY enthalten oder die nicht ZZ enthalten, rot gefärbt.
SOME FOST FORSCHEN Knoten zeigen nur die Knoten, die aus der Suche resultieren.
Die Taste der Lebenslauffarben unten gibt die Farben der Punkte auf das vorherige Malvorlagen zurück.
Wie in Abschnitt Daten Beschreibung und Funktionalität erläutert.
Die Daten sind in einem JSON -Format (JavaScript -Objektnotation). (Beispiele finden Sie in Ordnerdaten .) Um Daten zu erhalten.js, zuerst eine Datenstruktur
Dictionary<string, Point>
wird in jeder Programmiersprache erstellt, wobei die Schlüssel die IDs der Punkte und Point ein Objekt der Klasse sind
public class Point
{
public List<double> Coordinates;
public List<double> Properties;
}
Coordinates und Properties werden wie im vorherigen Abschnitt erläutert.
Als nächstes wird das Wörterbuch mit JavaScriptSerializer serialisiert und in data.json geschrieben (Name ist flexibel). Hier ist ein Beispiel für einen Eintrag des serialisierten Wörterbuchs in einer Datei data.json :
"3951" : {
"Coordinates" : [ 0.99860800383893167 , 0.61276015046241838 , 0.450976426942296 ],
"Properties" : [ " 0 " , " 1 " , " 5 " , " 12688892 " , " 0.998 " , " 5 " , " True " , " 0 " , " False " , " 5 " , " 1 " , " True " , " 1 " , " 518 " , " 0 " , " -1 " , " Rhodotorula " , " " , " Sporidiobolales " , " Microbotryomycetes " ]
}Optional sollte das Wörterbuch optional auch einen Eintrag enthalten
"NamesOfProperties" :[ " name1 " , " name2 " , , " name_n " ] Wenn Bilder den Knoten zugeordnet sind, kann das Knotenbild in einem Popup angezeigt werden, wenn Sie über den Knoten schweben. Wenn die Datendatei mit namedataset_ beginnt, sollte der Ordner mit Bildern in den data images_namedataset sein. (Siehe Beispiele in data , Entschuldigung für ihre Größe). Der Name eines Bildes sollte nodeId.jpg sein.
Wenn Ihre Bilder eine .png -Erweiterung haben, ist der Ordner fingerprints_namedataset eine Option, obwohl er derzeit für die Sherlock -Zwecke hergestellt wird.
Die Ausgabe von Ligvis ist eine Textdatei - jede Zeile hat die ID des Punktes und 3 Koordinaten (reelle Zahlen). Nur die erste Zeile ist eine Ausnahme: Sie enthält die Anzahl der Punkte und die Dimension. Hier ist ein Beispiel:
4271 3
0 -33.729916 17.692684 17.466749
1 -32.923210 17.249269 18.111458
Es kann in eine Eingabe des Betrachters verarbeitet werden, indem das Python -Skript "makeVizDatawithProperMetadata.py" im Ordner "scripts_preparedata" verwendet wird. Es wird mit mit dem aufgerufen
python MakeVizDataWithProperMetaData.py -coord coordinatesFile -metadata metaDataFile -dir baseDir -np -namesOfPropertiesFile
coordinatesFile : Die Ausgabedatei von Ligvis
metaData : Datei mit Meta -Informationen zu Daten. Format: [id] [metadata] . Format von Metadaten: "first_line" "second_line" "third_line" (Anzahl der Zeilen ist nicht begrenzt). Beispiellinie von metadata : 35 "A dog" "Age:2" "Color brown" .
baseDir : Basisverzeichnis zum Speichern der Ausgabedatei
namesOfPropertiesFile : Eine JSON -Datei, die Liste der Eigenschaftennamen enthält. Ex: ["Height", "Weight", "Place of birth"] . Wenn die Datei weggelassen wird, sollte der Name "No" sein
Die Software wird unter der GPL2 -Lizenz veröffentlicht. Wenden Sie sich an den Autor, wenn Sie eine Version mit einer Apache -Lizenz möchten