„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > billboard.js veröffentlicht: neues Flächen-Schritt-Bereichsdiagramm!

billboard.js veröffentlicht: neues Flächen-Schritt-Bereichsdiagramm!

Veröffentlicht am 02.09.2024
Durchsuche:918

Heute ist die neue Version 3.13 erschienen! Diese Version enthält 4 neue Funktionen, 2 Fehlerkorrekturen und Toolverbesserungen.

Detaillierte Veröffentlichungsinformationen finden Sie in den Versionshinweisen:
https://github.com/naver/billboard.js/releases/tag/3.13.0

Was ist neu?

Flächen-Schritt-Bereichsdiagramm

Bereichstypen sind nützlich, um „Bereichswerte“ ausgehend vom Basiswert zu visualisieren. Ab dieser Version wird der Variation ein neuer „Schritt“-Typ hinzugefügt.

billboard.js elease: new area-step-range chart!

Demo: https://naver.github.io/billboard.js/demo/#Chart.FunnelChart

import bb, {areaStepRange} from "billboard";

bb.generate({
  data: {
    columns: [
     ["data1", [70, 40, 30],
     [155, 130, 115],
     [160, 135, 120],
     [200, 120, 110],
     [95, 50, 40],
     [199, 160, 125]
    ]],
    type: areaStepRange()
  }
});

Regionen rendern Verbesserungen

Um einen Bereich mit gestrichelten Linien darzustellen, wird die Option data.regions verwendet. Aber die Art und Weise, gestrichelte Linien zu rendern, musste durch die Kombination mehrerer Pfadbefehle erfolgen, da gestrichelte Linien so sein mussten.

billboard.js elease: new area-step-range chart!

Aus dem obigen Beispiel-Screenshot sind mehrere Pfadbefehle erforderlich, um gestrichelte Linien zu zeichnen.

## Multiple path command
M5,232L95,136M99,139L104,142 M109,145L114,149 ... M L M L ...

## Single path command
M4,232,136L139,192L206,23L274,164L341,108

Dieser Ansatz verursachte einige Rendering-Probleme (#1, #2) und wir haben versucht, dies auf native Weise zu verbessern.

Anstatt gestrichelte Linien mit Pfadbefehlen zu zeichnen, sind wir dazu übergegangen, mithilfe der Stileigenschaft „Stroke-Dasharray“ zu rendern.

billboard.js elease: new area-step-range chart!

  • Vorher: Pfadbefehl/ Nachher: ​​Stroke-Dasharray

Demo: https://naver.github.io/billboard.js/demo/#Chart.LineChartWithRegions

Bei der Zoom-Interaktion wurde die Leistung der Animationsrahmen von 84 ms auf 5 ms verbessert!

billboard.js elease: new area-step-range chart!

Durch die Aktualisierung auf 3.12 profitieren Sie von den Vorteilen ohne Codeänderungen.

legend.format: Originaldaten-ID angeben
Wenn die Option „data.names“ angegeben ist, werden die Namen der Anzeigedaten von den ursprünglichen Namen (ID) abweichen.

{
  data: {
    names: {
      // will make data1 and data2, displayed in different values.
      data1: "Detailed Name",
      data2: "Name Detailed"
    },
    columns: [
       ["data1", 71.4],
       ["data2", 10]
    ]
  }
}

In diesem Fall erhält der Rückruf von legend.format den durch data.names ersetzten Wert anstelle der ursprünglichen ID.

data: {
    names: {
      // will make data1 and data2, displayed in different values.
      data1: "Detailed Name",
      data2: "Name Detailed"
    },
}
legend: {
    format: function(id) {
       // id will be 'Detailed Name' and 'Name Detailed'
    }
}

Ab dieser Version wird der ursprüngliche „id“-Wert mit den ersetzten Namen bereitgestellt.

data: {
    names: {
      // will make data1 and data2, displayed in different values.
      data1: "Detailed Name",
      data2: "Name Detailed"
    },
}
legend: {
    format: function(id, dataId) {
        // id will be 'Detailed Name' and 'Name Detailed'
        // dataId will be 'data1' and 'data2'
    }
}

Demo: https://naver.github.io/billboard.js/demo/#Legend.LegendFormat

bar.width Rückruf

Zuvor war es für bar.width möglich, einen absoluten Wert oder einen Verhältniswert anzugeben. „Absolut“ kann die Diagrammgröße nicht dynamisch widerspiegeln und das Verhältnis kann mit einer gewissen Einschränkung widerspiegeln.

Die Art und Weise, wie das Verhältnis berechnet wird, basiert auf der folgenden Gleichung.

x Axis tick Interval * ratio

Wenn das Diagramm beispielsweise eine Breite von 500 Pixeln hat und die Anzahl der Achsenstriche 5 beträgt, beträgt das Intervall ungefähr 100 Pixel.

billboard.js elease: new area-step-range chart!

Wenn in diesem Fall bar.ratio=0,5 angegeben ist, lautet die Gleichung wie folgt und die Breite des Balkens beträgt 49,9 Pixel.

100(exact value is 99.8) * 0.5 = 49.9

Um mehr Kontrolle über die Anpassung des Breitenwerts der Leiste zu geben, wird die Option „bar.width“ erweitert, um eine Rückruffunktion mit praktischen Parametern zu akzeptieren.

Demo: https://naver.github.io/billboard.js/demo/#BarChartOptions.BarWidth

bar: {
    width: function(width, targetsNum, maxDataCount) {
         // - width: chart area width
         // - targetsNum: number of targets
         // - maxDataCount: maximum data count among targets
   }
}

Noch etwas: Update zum Test-Framework

Wir haben Karma Mocha für unser Test-Framework verwendet und es war eine großartige Erfahrung, billboard.js stabil zu halten.

Leider hat Karma die Einstellung angekündigt und wir mussten einige andere moderne Test-Frameworks migrieren, um die Bibliothek stabil zu halten und dem modernen Ökosystem zu folgen.

Nach einiger Recherche haben wir uns entschieden, zu vitest zu wechseln. Wir haben die Migration innerhalb dieser Version erfolgreich durchgeführt und die lokalen Tests wurden um bis zu 63 % verbessert!

Pakete Dauer Unterschied über Karma
Karma (Mokka Chai) 142.382 -
Vitest (webdriverio:chrome) 144,364* 1,39 %
Vitest (Dramatiker:Chromium) 51,606** -63,75 %

Formular für weitere Details, Kasse https://github.com/naver/billboard.js/pull/3866

Schließen

Das ist alles, was wir für diese Veröffentlichung haben. Bleiben Sie dran!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/netil/billboardjs-313-release-new-area-step-range-chart-1g07?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3