Harap kutip perangkat lunak jika Anda menggunakannya di publikasi ilmiah Anda:
Dive adalah penampil web 3D interaktif hingga juta poin pada satu layar yang mewakili data. Ini dimaksudkan untuk memberikan interaksi untuk melihat data dimensi tinggi yang sebelumnya telah tertanam dalam 3D. Untuk menanamkan (pengurangan dimensi non-linear, atau pembelajaran berlipat ganda) kami merekomendasikan Largevis (algoritma baru oleh Microsoft Research,) atau TSNE.
Untuk demo online klik di sini. Anda juga dapat menggunakan situs ini untuk mengunggah dataset Anda yang mematuhi format data yang dijelaskan di bawah ini.
BARU: Pipa untuk Linux yang terdiri dari Largevis dan Dive telah dirilis di sini: https://github.com/sonjageorgievska/embed-dive.
Cara paling sederhana adalah mengunduh kode dan membuka index.html dengan browser Anda. Cobalah dengan mengunggah set data dari folder data . Aplikasi dapat bekerja sepenuhnya offline.
Untuk menggunakannya dengan server http lokal:
npm install connect serve-staticnode server.jshttp://localhost:8082/index.html npm install untuk menginstal semua persyaratan buildgrunt untuk dibangun. JavaScript yang dikompilasi yang dihasilkan akan berada di dist/ dan dokumen akan ada di doc/ Setiap titik memiliki 3 koordinat dan ID unik. (Untuk tampilan terbaik, nilai absolut dari koordinat harus lebih kecil dari 1. Saat menggunakan largevis dengan kesamaan (bobot) sebagai input, ini dapat dicapai dengan skala ulang kesamaan menjadi lebih kecil dari 1.)
Poin juga memiliki Properties :
Properties adalah daftar string yang bisa kosong. Setiap string yang merupakan angka mewakili nilai properti numerik masing -masing. Setiap string yang bukan angka mewakili nilai properti kategori masing -masing. Nilai-nilai ini digunakan di bagian pewarnaan UI halaman web. Ketika pengguna memilih properti, jika properti memiliki nilai kategorikal (non-numerik), setiap titik diwarnai dalam warna yang mewakili nilai properti kategori. Jika properti numerik, maka setelah pengguna memilih warna, setiap titik diwarnai dengan warna dengan warna yang dipilih. Intensitas warna sesuai dengan intensitas properti yang dipilih untuk titik tertentu.Node juga dapat memiliki gambar yang terkait dengannya, lihat bagian Format Data untuk info lebih lanjut.
Pengguna dapat mencari semua poin yang berisi substring tertentu di ID, nama atau properti mereka, dengan menggunakan bagian pencarian . Kemudian semua poin yang cocok menjadi merah, dan sisanya menjadi abu -abu. Seseorang dapat mencari juga ekspresi boolean dari ekspresi reguler. Contoh ekspresi boolean adalah xx AND yy OR NOT zz , di mana xx, yy, dan zz adalah ekspresi reguler dan tidak mengikat lebih dari dan, yang mengikat lebih dari OR. Dalam hal ini semua titik yang mengandung metadata mereka espresi reguler XX dan YY, atau yang tidak mengandung ZZ, akan diwarnai dengan warna merah.
Tampilkan hanya node yang ditemukan hanya akan menampilkan node yang dihasilkan dari pencarian.
Tombol resume warna di bagian bawah mengembalikan warna titik ke skema pewarnaan sebelumnya.
Seperti yang dijelaskan dalam bagian deskripsi dan fungsi data .
Data dalam format JSON (JavaScript Object Notation). (Lihat data folder untuk contoh.) Untuk mendapatkan data.js , pertama struktur data
Dictionary<string, Point>
dibuat dalam bahasa pemrograman apa pun, di mana kunci adalah id dari titik dan Point adalah objek kelas
public class Point
{
public List<double> Coordinates;
public List<double> Properties;
}
Coordinates dan Properties seperti dibahas di bagian sebelumnya.
Selanjutnya, kamus ini diserialisasi menggunakan JavaScriptSerializer dan ditulis dalam data.json (nama fleksibel). Berikut adalah contoh entri kamus serial dalam file 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 " ]
}Secara opsional, jika data memiliki properti, kamus juga harus berisi entri
"NamesOfProperties" :[ " name1 " , " name2 " , , " name_n " ] Secara opsional, jika gambar dikaitkan dengan node, gambar simpul dapat ditampilkan dalam pop-up saat melayang di atas node. Jika datafile dimulai dengan namedataset_ maka folder dengan gambar harus images_namedataset dalam data folder. (Lihat contoh dalam data folder, maaf atas ukurannya). Nama gambar harus nodeId.jpg .
Jika gambar Anda memiliki ekstensi .png maka folder fingerprints_namedataset adalah opsi, meskipun saat ini dibuat untuk tujuan Sherlock.
Output Largevis adalah file teks - setiap baris memiliki ID poin, dan 3 koordinat (bilangan real). Hanya baris pertama yang merupakan pengecualian: itu berisi jumlah titik dan dimensi. Inilah contohnya:
4271 3
0 -33.729916 17.692684 17.466749
1 -32.923210 17.249269 18.111458
Ini dapat diproses menjadi input penampil dengan menggunakan skrip python "MakevizDataWithPropermetadata.py" di folder "Scripts_preparedata". Itu disebut dengan
python MakeVizDataWithProperMetaData.py -coord coordinatesFile -metadata metaDataFile -dir baseDir -np -namesOfPropertiesFile
coordinatesFile : File output Largevis
metaData : File yang berisi informasi meta tentang data. Format: [id] [metadata] . Format Metadata: "first_line" "second_line" "third_line" (jumlah baris tidak terbatas). Contoh baris metadata : 35 "A dog" "Age:2" "Color brown" .
baseDir : Direktori Dasar untuk Menyimpan File Output
namesOfPropertiesFile : File JSON yang berisi daftar nama properti. Contoh: ["Height", "Weight", "Place of birth"] . Jika file dihilangkan, namanya harus "No"
Perangkat lunak ini dirilis di bawah lisensi GPL2. Hubungi penulis jika Anda ingin versi dengan lisensi Apache