Cite el software si lo está utilizando en su publicación científica:
Dive es un visor web interactivo en 3D de hasta millones de puntos en una pantalla que representan datos. Está destinado a proporcionar interacción para ver datos de alta dimensión que se han incrustado previamente en 3D. Para la incrustación (reducción de dimensionalidad no lineal, o aprendizaje múltiple) recomendamos grandesvises (un nuevo algoritmo de Microsoft Research) o TSNE.
Para una demostración en línea, haga clic aquí. También puede usar este sitio para cargar sus conjuntos de datos que cumplan con el formato de datos que se describe a continuación.
Nuevo: aquí se ha lanzado una tubería para Linux que consiste en LardVis y Dive: https://github.com/sonjageorgievska/embed-dive.
La forma más simple es descargar el código y abrir index.html con su navegador. Pruébelo cargando conjuntos de datos desde la carpeta de datos . La aplicación puede funcionar completamente fuera de línea.
Para usarlo con un servidor HTTP local:
npm install connect serve-staticnode server.jshttp://localhost:8082/index.html npm install para instalar todos los requisitos de compilacióngrunt para construir. El JavaScript compilado resultante estará en dist/ y los documentos estarán en doc/ Cada punto tiene 3 coordenadas y una identificación única. (Para una mejor opinión, los valores absolutos de las coordenadas deben ser más pequeños que 1. Cuando se usa LargeVI con similitudes (pesos) como entrada, esto se puede lograr reescalando las similitudes para ser más pequeñas que 1.)
Un punto también tiene Properties :
Properties es una lista de cadenas que pueden estar vacías. Cada cadena que es un número representa el valor de una propiedad numérica respectiva. Cada cadena que no es un número representa el valor de una propiedad categórica respectiva. Estos valores se utilizan en la sección para colorear de la interfaz de usuario de la página web. Cuando el usuario selecciona una propiedad, si la propiedad tiene valores categóricos (no numéricos), cada punto está coloreado en un color que representa el valor de la propiedad categórica. Si la propiedad es numérica, después de que el usuario ha seleccionado un color, cada punto está coloreado con un tono del color seleccionado. La intensidad del color corresponde a la intensidad de la propiedad seleccionada para el punto particular.Un nodo también puede tener una imagen asociada, consulte la sección Formato de datos para obtener más información.
Un usuario puede buscar todos los puntos que contengan una determinada subcadena en sus ID, nombres o propiedades, utilizando la sección de búsqueda . Entonces, todos los puntos que son un partido se vuelven rojos, y el resto se vuelve gris. También se puede buscar expresiones booleanas de expresiones regulares. Un ejemplo de expresión booleana es xx AND yy OR NOT zz , donde xx, yy y zz son expresiones regulares y no se unen más que y, lo que se une más que o. En este caso, todos los puntos que contienen en sus metadatos las espresiones regulares XX y YY, o que no contienen ZZ, se colorearán en rojo.
Show solo los nodos encontrados mostrarán solo los nodos que resultan de la búsqueda.
El botón de colores de currículum en la parte inferior devuelve los colores de los puntos al esquema de coloración anterior.
Como se explica en la sección Descripción y funcionalidad de los datos .
Los datos están en formato JSON (notación de objeto JavaScript). (Consulte los datos de la carpeta para ver ejemplos). Para obtener datos. JS , primero una estructura de datos
Dictionary<string, Point>
se crea en cualquier lenguaje de programación, donde las claves son las ID de los puntos y Point es un objeto de la clase
public class Point
{
public List<double> Coordinates;
public List<double> Properties;
}
Coordinates y Properties son las discutidas en la sección anterior.
A continuación, el diccionario se endurece utilizando JavaScriptSerializer y escrito en Data.json (el nombre es flexible). Aquí hay un ejemplo de una entrada del diccionario serializado en un archivo 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 " ]
}Opcionalmente, si los datos tienen propiedades, el diccionario también debe contener una entrada
"NamesOfProperties" :[ " name1 " , " name2 " , , " name_n " ] Opcionalmente, si las imágenes están asociadas a los nodos, la imagen del nodo se puede mostrar en una ventana emergente al flotar sobre el nodo. Si el archivo de datos comienza con namedataset_ , la carpeta con imágenes debe ser images_namedataset en data de la carpeta. (Ver ejemplos en data de carpetas, perdón por su tamaño). El nombre de una imagen debe ser nodeId.jpg .
Si sus imágenes tienen una extensión .png , entonces la carpeta fingerprints_namedataset es una opción, aunque actualmente está hecha para los fines de Sherlock.
La salida de BoatVIV es un archivo de texto: cada línea tiene la ID del punto y 3 coordenadas (números reales). Solo la primera línea es una excepción: contiene el número de puntos y la dimensión. Aquí hay un ejemplo:
4271 3
0 -33.729916 17.692684 17.466749
1 -32.923210 17.249269 18.111458
Se puede procesar en una entrada del espectador utilizando el script de Python "MakEvizDatawithPropermetadata.py" en la carpeta "scripts_preparedata". Se llama con
python MakeVizDataWithProperMetaData.py -coord coordinatesFile -metadata metaDataFile -dir baseDir -np -namesOfPropertiesFile
coordinatesFile : el archivo de salida de LANGSVIS
metaData : archivo que contiene meta información sobre datos. Formato: [id] [metadata] . Formato de metadatos: "first_line" "second_line" "third_line" (el número de líneas no está limitado). Línea de ejemplo de metadata : 35 "A dog" "Age:2" "Color brown" .
baseDir : directorio base para almacenar el archivo de salida
namesOfPropertiesFile : un archivo JSON que contiene una lista de nombres de propiedades. Ej: ["Height", "Weight", "Place of birth"] . Si se omite el archivo, su nombre debería ser "No"
El software se lanza bajo la licencia GPL2. Póngase en contacto con el autor si desea una versión con una licencia de Apache