Zum Inhalt springen
Pivotick
Main Navigation Startseite
Erste Schritte
Konfiguration
API-Referenz
GalerieProjekteAusprobieren!

Deutsch

English
简体中文
Français
Português

Deutsch

English
简体中文
Français
Português

Darstellung

Sidebar Navigation

Erste Schritte

Projekte mit Pivotick

Konfiguration

Callbacks

Kantenebenen

Vereinfachen

Layout

Darstellung

Simulation

Oberfläche anpassen

Seitenleiste

Tooltip

Kontextmenü

Filter

Legende

Datentabelle

Oberflächengestaltung

Oberfläche übersetzen

Plugins

Pivotick-API

Pivots und Anreicherung

Pivot-Ergebnisse speichern

Rückgängig und Verlauf

Sicherheit

API-Dokumentation

Galerie

Grundlagen

Knotengestaltung

Kantengestaltung

Layouts

Ereignisse und Callbacks

Oberflächenanpassung

Bearbeiten und Erstellen

Notizen und Anmerkungen

Filter, Suche und Hierarchie

Programmatische Steuerung

Themes und Leistung

Pivots und Anreicherung

Anwendungsbeispiele

Beschriftungen werden angezeigt, wenn Sie hineinzoomen ​

Auf dem Diagramm befindet sich eine Beschriftung. Je weiter die Ansicht entfernt ist, desto kleiner wird sie dargestellt. Ab einem Punkt ist es kein Text mehr, sondern nur noch eine graue Textur über dem Diagramm. render.minLabelFontSize ist die Größe (in gerenderten Pixeln), unterhalb derer überhaupt nicht gezeichnet wird.

Die folgende Grafik wird ohne Beschriftung geöffnet. Scrollen Sie hinein und die Site-Namen werden zuerst angezeigt, dann die Hostnamen und die Edge-Beschriftungen.

Dinge, die es wert sind, provoziert zu werden:

  • Scrollen Sie langsam hinein. Die Site-Namen kommen vor den Hostnamen an. Die Beschriftung eines Knotens wird von seiner Größe abgeleitet, sodass eine bei 40 gezeichnete Site eine Beschriftung mit 18 Einheiten hat und ein bei 10 gezeichneter Host die Untergrenze von 12. Eine Zahl für die gesamte Arbeitsfläche, und der gewünschte Unterschied ergibt sich aus den bereits vorhandenen Größen.
  • Parken Sie den Zoom an der Stelle, an der eine Beschriftung erscheint, und verschieben Sie sie. Eine angezeigte Beschriftung bleibt bestehen, bis ihre gerenderte Größe auf 85 % des Schwellenwerts fällt, sodass das Bild ruhiger wird, anstatt zu flackern. Jedes Etikett in einer Größe antwortet zusammen.
  • Wählen Sie eine Kante aus und scrollen Sie dann wieder heraus. Die Beschriftung bleibt erhalten, während alle anderen angezeigt werden, und zwar in einer konstanten Größe auf dem Bildschirm, anstatt mit der Grafik zu verkleinern. Eine Kante hat keinen Tooltip und kein Panel, daher ist ihre Beschriftung die einzige Antwort darauf.
  • Scrollen Sie zu einer Site hinein und schwenken Sie dann zu einer anderen. Eine Beschriftung wird für das, was auf dem Bildschirm angezeigt wird, erneut ausgewählt, sodass eine Site, an der Sie vorbeigezoomt haben, ihren Namen erhält, wenn Sie zurück zu ihr schwenken, und nicht, wenn sie außer Sichtweite ist.

Ausschalten

minLabelFontSize: 0 zeichnet jede Beschriftung bei jedem Zoom, was die Bibliothek tat, bevor es die Option gab.

js
const options = {
    render: {
        // The default. Below 9 rendered pixels a label is not drawn — and a node's label is
        // derived from its size, so the sites keep theirs to a lower zoom than the hosts.
        minLabelFontSize: 9,
        defaultNodeStyle: { shape: 'circle', textColor: '#ffffff' },
        defaultEdgeStyle: { strokeColor: '#cbd5e1', strokeWidth: 2 },
    },
    // Every node is pinned, so the layout is the one written above.
    simulation: { enabled: false },
}
js
/**
 * Seven sites — one in the middle, six around it — each with four hosts. Pinned wide enough
 * that the graph opens well under zoom 1, which is the point of the card, and dense enough in
 * the middle that scrolling in anywhere lands on something with a name.
 *
 * A site is drawn at size 40 and a host at 10, so their labels are 18 and 12 graph units: a
 * node's label is derived from its size, with a floor at 12.
 */
const SITES = [
    { id: 'core', name: 'Frankfurt', x: 0, y: 0, tone: '#2563eb' },
    { id: 'us', name: 'Ashburn', x: 1000, y: -560, tone: '#0891b2' },
    { id: 'sa', name: 'São Paulo', x: 1000, y: 560, tone: '#d97706' },
    { id: 'ap', name: 'Singapore', x: -1000, y: 560, tone: '#7c3aed' },
    { id: 'uk', name: 'London', x: -1000, y: -560, tone: '#059669' },
    { id: 'no', name: 'Oslo', x: 0, y: -900, tone: '#db2777' },
    { id: 'za', name: 'Cape Town', x: 0, y: 900, tone: '#65a30d' },
]

const HOSTS = [
    { name: 'edge', relation: 'routes to' },
    { name: 'cache', relation: 'caches for' },
    { name: 'api', relation: 'serves' },
    { name: 'db', relation: 'reads from' },
]

const nodes = []
const edges = []

for (const site of SITES) {
    nodes.push({
        id: site.id,
        fx: site.x,
        fy: site.y,
        style: { size: 40, color: site.tone, text: site.name, textVerticalShift: 1 },
    })
    HOSTS.forEach((host, index) => {
        const angle = (index / HOSTS.length) * Math.PI * 2 + Math.PI / 4
        const id = `${site.id}-${host.name}`
        nodes.push({
            id,
            fx: site.x + Math.cos(angle) * 250,
            fy: site.y + Math.sin(angle) * 230,
            style: { size: 10, color: '#94a3b8', text: `${host.name}.${site.id}`, textVerticalShift: 1 },
        })
        edges.push({ from: site.id, to: id, data: { label: host.relation } })
    })
}

// Every outer site peers with the middle one, so this is one network rather than seven.
for (const site of SITES.slice(1)) {
    edges.push({ from: 'core', to: site.id, data: { label: 'peers with' } })
}

const data = { nodes, edges }

Siehe Rendering → Beschriftungen in lesbarer Größe für den Vertrag und Detail, das dem Zoom folgt für die Knotenhälfte derselben Idee.

Pager
Nächste SeiteErste Schritte