Skip to content

GyverLibs/SVPlot.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SVPlot.js

ΠžΡ‡Π΅Π½ΡŒ Π»Ρ‘Π³ΠΊΠΈΠΉ (~7 kB gzip) ΠΏΠ»ΠΎΡ‚Ρ‚Π΅Ρ€ для JS

  • 2 Ρ‚ΠΈΠΏΠ° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²: Π»ΠΈΠ½ΠΈΠΈ ΠΈ timeline (Π½Π°Ρ‡Π°Π»ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ† Ρ€Π°Π±ΠΎΡ‚Ρ‹)
  • Π“Ρ€Π°Ρ„ΠΈΠΊ Π»ΠΈΠ½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ статичным (врСмя Ρ‚ΠΎΡ‡Π΅ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ) ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ΠΌ (врСмя Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°)
  • Π›ΡŽΠ±ΠΎΠ΅ количСство осСй
  • Π Π΅ΠΆΠΈΠΌ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ оси
  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ отобраТСния осСй
  • ΠŸΠΎΠ»Π½ΠΎΡΠΊΡ€Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ
  • Вёмная ΠΈ свСтлая Ρ‚Π΅ΠΌΡ‹
  • Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SVG
  • Π Π΅ΠΆΠΈΠΌ пСрСмСщСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ измСрСния Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°
  • Полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° управлСния с тачскрина

demo

svplot

Browser: https://gyverlibs.github.io/SVPlot.js/SVPlot.min.js

Node: npm i @alexgyver/SVPlot

SVPlot

/**
 * @param {HTMLElement} parent 
 * @param {*} params dark: true|false, type: 'running|stack|plot|timeline', labels: [''], period: 200
 */
SVPlot(parent, params = {}, context = window);

/**
 * if sequence starts with 0 - will be displayed in seconds (add time in ms). If not 0 - unix date-time mode (add time in sec or ms)
 * @param {*} data 
 * running     [ y0, y1, .. ]
 * stack       [ y0, y1, .. ]
 * plot        { t0: [y0, ..], .. }
 * timeline    { t0: [y0, ..], .. } | { t0: {y0:state, y2:state}, .. }
 */
setData(data);

/**
 * @param {*} params dark: true|false, type: 'running|stack|plot|timeline', labels: [''], period: 200
 */
setConfig(params);

/**
 * @param {Array} labels
 */
setLabels(labels);

// clear plot data
clearData();

// stretch plot to fill window
fitData();

// move right and shift on new data
autoData();

// release resizer
release();

// set display range in seconds
setRange(range);

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅

<body>
    <div id="plot"></div>
</body>

<script>
    let plot = new SVPlot(document.getElementById('plot'), {});
</script>

Подписи

Π—Π°Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· setLabels массивом строк ['label', 'label2']. ВозмоТности:

  • Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ† измСрСния Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках Π² ΠΊΠΎΠ½Ρ†Π΅ строки: ['label[%]', 'label2[ mm]']
  • ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ - Π·Π½Π°ΠΊΠΈ Ρ‚ΠΈΡ€Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ строки: ['-label', '---label2']. Π§Π΅ΠΌ большС Ρ‚ΠΈΡ€Π΅ - Ρ‚Π΅ΠΌ Π΄Π»ΠΈΠ½Π½Π΅Π΅ ΡˆΡ‚Ρ€ΠΈΡ…ΠΈ

Π’ΠΈΠΏΡ‹

running

АвтоматичСски двиТСтся с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ {period: 200}, сохраняя ΠΊΡ€Π°ΠΉΠ½Π΅Π΅ ΠΏΡ€Π°Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½Ρ‹ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ. ВрСмя Ρ‚ΠΎΡ‡Π΅ΠΊ (ось x) Π±Π΅Ρ€Ρ‘Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. setData ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ массива со значСниями осСй: [ y0, y1, .. ].

stack

ДвиТСтся ΠΏΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ВрСмя Ρ‚ΠΎΡ‡Π΅ΠΊ (ось x) Π±Π΅Ρ€Ρ‘Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. setData ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ массива со значСниями осСй: [ y0, y1.. ].

plot

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎ оси x. setData ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ { t0: [y0, y1..], .. }. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

  • UNIX Π² сСкундах ΠΈΠ»ΠΈ миллисСкундах: Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π΄Π°Ρ‚Π° ΠΈ врСмя
  • ΠŸΡ€ΠΎΡΡ‚ΠΎ врСмя Π² миллисСкундах, начиная с 0 (пСрвая Ρ‚ΠΎΡ‡ΠΊΠ°): Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ врСмя Π² сСкундах, начиная с 0 сСкунд

timeline

Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π±Π»ΠΎΠΊΠΈ "Π½Π°Ρ‡Π°Π»Π° ΠΈ окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹" с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΠΎ оси x. setData ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ { t0: [y0, ..], .. } ΠΈΠ»ΠΈ { t0: {y0:state, y2:state}, .. }. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

  • UNIX Π² сСкундах ΠΈΠ»ΠΈ миллисСкундах: Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π΄Π°Ρ‚Π° ΠΈ врСмя
  • ΠŸΡ€ΠΎΡΡ‚ΠΎ врСмя Π² миллисСкундах, начиная с 0 (пСрвая Ρ‚ΠΎΡ‡ΠΊΠ°): Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ врСмя Π² сСкундах, начиная с 0 сСкунд

About

Tiny JavaScript chart plotter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •