billboard.js elease: carta julat langkah kawasan baharu!

WBOY
Lepaskan: 2024-08-24 11:09:32
asal
579 orang telah melayarinya

Keluaran v3.13 baharu keluar hari ini! Keluaran ini disertakan dengan 4 ciri baharu, 2 pembetulan pepijat dan penambahbaikan alatan.

Untuk maklumat keluaran terperinci, sila semak nota keluaran:
https://github.com/naver/billboard.js/releases/tag/3.13.0

Apa yang Baharu?

Carta julat langkah kawasan

Jenis julat berguna untuk menggambarkan "nilai julat" daripada nilai garis dasar. Daripada keluaran ini akan memberikan jenis "langkah" baharu kepada variasi.

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()
  }
});
Salin selepas log masuk

Kawasan membuat penambahbaikan

Untuk memaparkan beberapa julat dengan garis putus-putus, pilihan data.regions digunakan. Tetapi cara untuk memaparkan garis putus-putus, dilakukan dengan menggabungkan arahan berbilang laluan seperti yang diperlukan oleh garis putus-putus.

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

Daripada contoh tangkapan skrin di atas, arahan berbilang laluan diperlukan untuk melukis garis putus-putus.

## 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
Salin selepas log masuk

Pendekatan ini menyebabkan beberapa isu pemaparan(#1, #2) dan kami cuba memperbaikinya dengan cara asli.

Daripada melukis garisan putus-putus dengan arahan laluan, kami beralih kepada pemaparan menggunakan sifat gaya stroke-dasharray.

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

  • Sebelum: arahan laluan/ Selepas: stroke-dasharray

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

Pada interaksi zum, prestasi bingkai animasi telah dipertingkatkan daripada 84ms → 5ms!

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

Dengan mengemas kini kepada 3.12, akan mendapat faedah tanpa sebarang perubahan kod.

legend.format: sediakan id data asal
Apabila pilihan data.names ditentukan, ia akan menjadikan nama data paparan berbeza daripada nama(id) asal.

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

Dalam kes ini, panggilan balik legend.format, akan menerima nilai digantikan nama data, sebaliknya id asal.

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'
    }
}
Salin selepas log masuk

Daripada keluaran ini akan memberikan nilai 'id' asal dengan nama yang diganti.

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'
    }
}
Salin selepas log masuk

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

panggilan balik bar.width

Sebelum ini, bar.width mungkin menentukan nilai mutlak atau dalam nilai nisbah. mutlak tidak dapat mencerminkan saiz semula carta secara dinamik dan nisbah boleh mencerminkan dengan beberapa had.

Nisbah cara dikira adalah berdasarkan persamaan di bawah.

x Axis tick Interval * ratio
Salin selepas log masuk

Sebagai contoh, jika carta mempunyai lebar 500px, dengan 5 x kiraan tanda Paksi, selang kira-kira 100px.

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

Dalam kes ini, jika bar.ratio=0.5 ditentukan, persamaannya adalah seperti berikut dan lebar bar ialah 49.9px.

100(exact value is 99.8) * 0.5 = 49.9
Salin selepas log masuk

Untuk memberikan lebih banyak kawalan melaraskan nilai lebar bar, akan meningkatkan pilihan bar.width untuk menerima fungsi panggil balik dengan parameter berguna.

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
   }
}
Salin selepas log masuk

Seperkara lagi, kemas kini tentang rangka kerja ujian

Kami mengguna pakai Karma + Mocha untuk rangka kerja ujian kami dan pengalaman hebat untuk mengekalkan papan iklan.js supaya stabil.

Malangnya, Karma mengumumkan penamatan dan kami perlu memindahkan beberapa rangka kerja ujian moden yang lain untuk memastikan perpustakaan stabil dan mengikuti ekosistem moden.

Selepas beberapa penyelidikan, kami memutuskan untuk berpindah ke vitest. Kami berjaya berhijrah dalam keluaran ini dan ujian tempatan telah dipertingkatkan sehingga 63%!

Packages Duration Diff over Karma
Karma (Mocha + Chai) 142.382 -
Vitest (webdriverio:chrome) 144.364* +1.39%
Vitest (playwright:chromium) 51.606** -63.75%

Borang butiran lanjut, semak https://github.com/naver/billboard.js/pull/3866

Penutup

Itu sahaja yang kami ada untuk keluaran ini dan terima kasih untuk terus menonton!

Atas ialah kandungan terperinci billboard.js elease: carta julat langkah kawasan baharu!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!