翻譯|行業(yè)資訊|編輯:龔雪|2025-10-13 11:19:57.107|閱讀 12 次
概述:本文主要介紹如何使用LightningChart JS創(chuàng)建一個用于可視化歷史和預(yù)計收入的JS虛線圖,歡迎下載最新版體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
LightningChart JS是Web上性能特高的圖表庫,具有出色的執(zhí)行性能 - 使用高數(shù)據(jù)速率同時監(jiān)控數(shù)十個數(shù)據(jù)源。 GPU加速和WebGL渲染確保您的設(shè)備的圖形處理器得到有效利用,從而實現(xiàn)高刷新率和流暢的動畫,常用于貿(mào)易,工程,航空航天,醫(yī)藥和其他領(lǐng)域的應(yīng)用。
本文我們將創(chuàng)建一個虛線折線圖(Dashed Line Chart),它是數(shù)據(jù)分析中常用、重要的圖表類型之一,非常適合剛開始做數(shù)據(jù)可視化練習(xí)的開發(fā)人員。
虛線折線圖是一種折線圖,其中部分或全部線條用虛線代替實線。這種圖表是標(biāo)準(zhǔn)折線圖的一個變體,用于當(dāng)涉及多個數(shù)據(jù)系列時讓圖表更清晰,或用來區(qū)分不同的信息類型(例如實際數(shù)據(jù) vs. 預(yù)測數(shù)據(jù))。
它常用來:
要遵循這個JavaScript多圖表畫布項目,請下載包含所有必要資源的ZIP文件。
1. 下載提供的模板以便按教程操作。
2. 下載模板后,您會看到如下文件結(jié)構(gòu)(file tree)。
3. 打開終端,運行 npm install 命令。
4. 保持 tsconfig.json 文件中的配置很重要,這些配置會幫助您把 JSON 文件作為數(shù)據(jù)對象導(dǎo)入。
建議您使用并更新到LightningChart JS 和 的最新版本,這是因為某些 LightningChart JS 的工具在舊版本中并不存在。在項目的 package.json 文件中可以看到 LightningChart JS 的依賴項:
"dependencies": { "@lightningchart/lcjs": "^7.0.2", }
1. 導(dǎo)入類(Importing classes)
將從導(dǎo)入創(chuàng)建圖表所需的類開始。
import {AxisScrollStrategies, emptyFill, lightningChart, isImageFill, SolidFill, ColorRGBA, Themes} from "@lightningchart/lcjs";
2. 添加許可證 Key(免費)
安裝完 LightningChart JS 庫后,我們將在 chart.ts 文件中導(dǎo)入他們。注意,您將需要一個試用許可證(trial license),是免費的。
let license = undefined try { license = 'xxxxxxxxxxxxx' } catch (e) {}
這段代碼用于可視化財務(wù)趨勢,用實線表示過去收入,用虛線表示預(yù)測收入。它還突出了預(yù)測期,并確保圖表保持清晰、易讀和用戶友好。現(xiàn)在我們逐步回顧代碼及其作用。
import revenueData from './revenue.json'; const lcjs = require('@lightningchart/lcjs') const { lightningChart, Themes, emptyFill, AxisTickStrategies, emptyLine, DashedLine, StipplePat
const chart = lightningChart({license:license}) .ChartXY({ theme: Themes.darkGold, }) .setTitle('Historical and projected revenue')
const axisX = chart .getDefaultAxisX() // Configure DateTime X ticks. .setTickStrategy(AxisTickStrategies.DateTime, (ticks) => // Show month, day and year in cursor result table ticks.setCursorFormatter((timestamp) => new Date(timestamp).toLocaleDateString(undefined, { month: 'short', day: '2-digit', year: 'numeric' }) ), )
const axisY = chart
.getDefaultAxisY()
// Configure Y axis formatting as "100 k€"
.setTickStrategy(AxisTickStrategies.Numeric, (ticks) => ticks.setFormattingFunction((euros) => `${(euros / 1000).toFixed(0)} k€`));
const tNow = 1664456233537 const dataPast = revenueData.filter((p) => p.x <= tNow) const dataProjection = revenueData.filter((p) => p.x > tNow) dataProjection.unshift(dataPast[dataPast.Length - 1])
const seriesPast = chart .addPointLineAreaSeries({ dataPattern: 'ProgressiveX', automaticColorIndex: 0 }) .appendJSON(dataPast) .setName('Revenue (past)') .setAreaFillStyle(emptyFill)
const seriesProjection = chart .addPointLineAreaSeries({ dataPattern: 'ProgressiveX', automaticColorIndex: 0 }) .appendJSON(dataProjection) .setStrokeStyle( (stroke) => new DashedLine({ thickness: stroke.getThickness(), fillStyle: stroke.getFillStyle(), pattern: StipplePatterns.Dashed, patternScale: 4, }), ) .setName('Revenue (projected)') .setAreaFillStyle(emptyFill)
axisX .addBand() .setValueStart(dataProjection[0].x) .setValueEnd(dataProjection[dataProjection.length - 1].x) .setStrokeStyle(emptyLine) .setPointerEvents(false) .setEffect(false)
axisX .addCustomTick() .setValue(dataProjection[0].x) .setTickLength(20) .setTextFormatter(() => 'Today')
在終端運行 npm start 命令,在本地服務(wù)器上可視化圖表。
這個圖表非常好地可視化了收入趨勢,使我們更容易清晰、有結(jié)構(gòu)地查看歷史數(shù)據(jù)與未來預(yù)測。要達到這個效果:
LightningChart JS所提供的結(jié)構(gòu)化實現(xiàn)讓我們能夠創(chuàng)建一個強大、響應(yīng)迅速且高度精確的分析圖表。雖然 LC JS 與傳統(tǒng)的 JavaScript 或 jQuery 圖表不同,但其實現(xiàn)方式提供了一個更結(jié)構(gòu)化、易維護、模塊化的方案。
更多產(chǎn)品更新信息歡迎“”了解!
慧都是?家?業(yè)數(shù)字化解決?案公司,專注于軟件、?油與?業(yè)領(lǐng)域,以深?的業(yè)務(wù)理解和?業(yè)經(jīng)驗,幫助企業(yè)實現(xiàn)智能化轉(zhuǎn)型與持續(xù)競爭優(yōu)勢。
慧都科技是LightningChart的中國區(qū)的合作伙伴,LightningChart作為數(shù)據(jù)可視化領(lǐng)域的優(yōu)秀產(chǎn)品,通過高性能的GPU加速渲染技術(shù),顯著提升企業(yè)在實時數(shù)據(jù)可視化與海量數(shù)據(jù)處理方面的效率,尤其適用于需要快速呈現(xiàn)和分析數(shù)十億數(shù)據(jù)點的場景。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自:慧都網(wǎng)