D3.js
  • D3.js Nedir, Ne Değildir?
  • JS Grafik Kütüphaneleri
  • Modüler D3.js
    • D3.js Eklenti Oluşturma
  • Başlangıç
  • Seçiciler
  • Element Biçimlendirme
  • Olaylar (Events)
  • Geçişler ve Animasyonlar
    • Kontrol Fonksiyonları
    • Bir Geçişin Yaşam Döngüsü
  • Ölçekler (Scales)
    • Sürekli Girdili ve Sürekli Çıktılı
    • Sürekli Girdili ve Kesikli Çıktılı
    • Kesikli Girdili ve Gesikli Çıktılı
  • Eksen (Axes)
  • Şekiller (Shapes)
    • Çizgi (line) Oluşturucu
    • Area (alan) Oluşturucu
    • Stack (yığın) Oluşturucu
    • Arc (yay) Oluşturucu
    • Pie (pasta) Oluşturucu
    • Symbols (semboller)
  • Düzenler (Layouts)
    • Tree Layout
    • Cluster Layout
    • Treemap Layout
    • Pack Layout
    • Partition Layout
    • Chord Layout
    • Force Layout
  • Kaynaklar
Powered by GitBook
On this page

Was this helpful?

  1. Düzenler (Layouts)

Pack Layout

PreviousTreemap LayoutNextPartition Layout

Last updated 5 years ago

Was this helpful?

Paket düzeni, ağaç düzenine benzer ancak dikdörtgen yerine daireler düğümleri temsil etmek için kullanılır. Aşağıdaki örnekte her ülke bir daireyle temsil edilir (popülasyona göre boyutlandırılmıştır) ve ülkeler bölgelere göre gruplandırılmıştır.

var packLayout = d3.pack();

packLayout.size([300, 300]);

rootNode.sum(d => d.value);

packLayout(rootNode);

Paket düzeni her düğüme x, y ve r (yarıçapı için) özelliklerini ekler.

d3.select('svg g')
  .selectAll('circle')
  .data(rootNode.descendants())
  .enter()
  .append('circle')
  .attr('cx', function(d) { return d.x; })
  .attr('cy', function(d) { return d.y; })
  .attr('r', function(d) { return d.r; })

Etiketler her düğüm için g elemanı oluşturularak eklenebilir:

var nodes = d3.select('svg g')
  .selectAll('g')
  .data(rootNode.descendants())
  .enter()
  .append('g')
  .attr('transform', d => 'translate(' + [d.x, d.y] + ')')

nodes
  .append('circle')
  .attr('r', d => d.r)

nodes
  .append('text')
  .attr('dy', 4)
  .text(d => d.children === undefined ? d.data.name : '')

Her dairenin etrafındaki dolgu, .padding() kullanılarak yapılandırılabilir: