Pertanyaan Bagaimana saya bisa membuat grafik DOT / neato lebih ringkas tanpa memperkenalkan tumpang tindih?


Pertanyaan saya pada dasarnya sama dengan yang ini tetapi jawaban yang diberikan tidak bekerja untuk saya.

Berikut ini contoh rendering (sumber) dengan

compound=true;
overlap=scalexy;
splines=true;
layout=neato;

enter image description here

Ada beberapa tumpang tindih yang tidak perlu di tepian tetapi ini tidak terlalu buruk, masalah utamanya adalah semua ruang yang terbuang.

Saya mencoba pengaturan sep=-0.7; dan inilah yang terjadi.

enter image description here

Jaraknya jauh lebih baik tetapi sekarang ada beberapa tumpang tindih dengan simpul. Saya bereksperimen dengan berbeda overlap parameter dan ini adalah satu-satunya yang memberikan hasil yang dapat diterima dari jarak jauh.

Saya mencoba mengubah tata letak fdp dan menyetel atribut konstanta pegas K secara global tetapi saya hanya punya hal-hal seperti ini:

enter image description here

Sumbernya semua langsung a--b--c semacam barang, tidak ada trik mewah.

Apa yang saya inginkan adalah untuk semua sisi untuk dipersingkat sebanyak mungkin (hingga minimum) asalkan penyesuaian ini tidak memperkenalkan tumpang tindih baru, yang mana sep gagal sepenuhnya. Sepertinya tidak terlalu sulit bagi mesin layout untuk melakukannya. Apakah mungkin dengan graphviz suite? Saya tidak keberatan mengubah perangkat lunak render, tetapi saya tidak ingin membubuhi keterangan sumber pada basis per-node atau per-tepi.

Saya ideal Hasilnya adalah meminimalkan penyimpangan dalam panjang tepi, dianggap sebagai satu simpul pada satu waktu, yaitu setiap simpul memiliki tepi dengan panjang yang sama terlepas dari perkecualian yang diperlukan, tetapi itu adalah angan-angan. Prioritasnya adalah untuk mengurangi panjang setiap tepi dengan batasan bahwa ini tidak dapat memperkenalkan tumpang tindih.

Saya akan menerima solusi parsial tetapi mereka harus sepenuhnya otomatis dan open source.

Bagaimana saya bisa melakukan ini? Terima kasih.


11
2018-01-03 13:26


asal


Jawaban:


saya menemukan https://sites.google.com/site/kuabus/programming-by-hu/graphviz-test-tool, alat interaktif untuk menentukan banyak opsi dan berulang kali menampilkannya. Saya melihat daftar lengkap yang disediakan oleh aplikasi Java, akhirnya diakhiri dengan set atribut ini:

overlap=false
maxiter=99999999
damping=9999999
voro_margin=.001
start=0.1
K=1
nodesep=999999999999
labelloc=c
defaultdist=9999999
size=20,20
sep=+1
normalize=99999999
labeljust=l
outputorder=nodesfirst
concentrate=true
mindist=2
fontsize=99999999
center=true
scale=.01
inputscale=99999999
levelsgap=9999999
epsilon=0.0001

Saya tidak dapat menemukan parameterisasi neato yang membuat menghasilkan grafik "cukup skala" yang diinginkan.


2
2018-02-08 00:52



Anda harus mengatur

overlap = compress;

ini harus memampatkannya sebanyak mungkin. Coba sep = +1; pertama, lalu mainkan dengan nilai antara 0 dan +1 untuk menemukan pengaturan optimal untuk Anda.


1
2018-01-22 09:53