Grafik hizalaması
Tikz'de yeniyim ve bazı egzersizler yapıyorum. " Olasılıksal Grafik Modeller " kitabında küçük bir bayes ağı örneğine rastladım ve çizmeye çalışacağımı düşündüm. graphsDüğümler bağlayarak tanımlanır iyi seçenek gibiydi ama modül biraz garip şekilde tüm düğümlerin yerleştirir. İşte resim
ve işte kod:
\documentclass{standalone}
\usepackage[utf8]{inputenc}
%\usepackage[margin=1cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, graphs, matrix, shapes.geometric}
\begin{document}
\begin{tikzpicture}
\graph[grow down, grow down sep=3mm, branch right=2.5cm,
edges={>=Latex, semithick, color=black},
nodes={draw, ellipse, fill=black!10, very thick,
minimum width=2cm, minimum height=10mm}] {
GC -> {
BC -!- GH -> {
BH,
GB -> BB,
GL -> BL,
GN -> BN,
},
GM -> {
GB,
GL,
GN,
BM,
},
GS -> BS,
},
GJ -> {
GM,
GS,
BJ,
},
};
\end{tikzpicture}
\end{document}
Sanırım neler olduğunu anlıyorum. Düğüm GJ, ağacın geri kalanı için alan oluşturmak üzere sağa doğru itilir. Her seviye yatay olarak hizalanmış olarak grafiği daha kompakt hale getirmenin bir yolu olup olmadığını merak ediyordum. Ayrıca, grafikteki mantığı ifade etmek için bazı düğüm gruplarını nasıl kaydırabilirim (yatay, dikey) merak ediyordum; G (X) ler aynı seviyede olmalı ve B (X) ler aşağıda olmalıdır.
Uygun grafik düzeni aşağıdadır ve modülün kendi kullanışlılığını bir şekilde bozduğu için tamamen mutlu olmadığım matrixve kombinasyonunu kullandım .graphsgraphs
Teşekkürler.
Yanıtlar
Geçiş Layered layoutseçeneğini misiniz değil paketlerin dikkat ve pgfmanual / TikZ önerildiği gibi Lualatex ile derlemek ?, düğümleri için dairesel şekiller preffer. :)
\documentclass{standalone}
\usepackage[utf8]{inputenc}
%\usepackage[margin=1cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, graphs,graphdrawing, shapes.geometric }
\usegdlibrary{layered}
\begin{document}
%Compile with luaLatex
\begin{tikzpicture}
\graph[
layered layout,
sibling distance =3cm,
level distance =3cm,
edges={>=Latex, semithick, color=black},
nodes={draw, ellipse, fill=black!10, very thick,
minimum width=2cm, minimum height=10mm}
]
{
GC -> {
BC -!- GH -> {
BH,
GB -> BB,
GL -> BL,
GN -> BN,
},
GM -> {
GB,
GL,
GN,
BM,
},
GS -> BS,
},
GJ -> {
GM,
GS,
BJ,
},
};
\end{tikzpicture}
\end{document}