Skip to content

TimeSeriesHistory

Gráfica de ciclo histórico con dataset completo. Zoom libre con scroll centrado en el cursor. Pan con drag para navegar por el ciclo. Soporta marcas de fase (intervals).


Demo — ciclo HIP completo con fases

scroll = zoom
TT601 ControlTT605 Load1TT606 Load2TT607 Load3SP TempPresiónSP Pres

Interacción

AcciónEfecto
Scroll ↑Zoom in centrado en el cursor
Scroll ↓Zoom out centrado en el cursor
Drag ←→Pan — desplaza la ventana visible
HoverCursor badge con timestamp exacto
Click leyendaOculta / muestra la serie

El zoom está siempre centrado en el punto bajo el ratón. Para ir a la fase Vacuum: coloca el ratón sobre esa zona y haz scroll ↑.

El barra superior (scrubber) muestra la posición y tamaño de la ventana actual respecto al rango total del ciclo.


Instalación

bash
pnpm add @bjaland/hiperbaric-chart
ts
import { TimeSeriesHistory } from '@bjaland/hiperbaric-chart'
import '@bjaland/hiperbaric-chart/style.css'

Uso básico

vue
<template>
  <div style="height: 400px;">
    <TimeSeriesHistory
      :timestamps="timestamps"
      :series="series"
      :left-axis="leftAxis"
      :right-axis="rightAxis"
      :intervals="intervals"
    />
  </div>
</template>

<script setup lang="ts">
import {
  TimeSeriesHistory,
  type ChartSeries,
  type AxisConfig,
  type ChartInterval,
} from '@bjaland/hiperbaric-chart'

// Dataset completo — se pasa de una vez, no en streaming
const timestamps: number[] = [/* Unix timestamps en segundos */]
const series: ChartSeries[] = [
  {
    key: 'TT601',
    label: 'TT601',
    unit: '°C',
    color: '#f43f5e',
    axis: 'left',
    data: [],
    bold: true,
  },
  { key: 'Pres', label: 'Pres', unit: 'bar', color: '#60a5fa', axis: 'right', data: [] },
]

const leftAxis: AxisConfig = { label: 'Temperatura', unit: '°C', color: '#f43f5e' }
const rightAxis: AxisConfig = { label: 'Presión', unit: 'bar', color: '#60a5fa' }

// Fases del ciclo — opcional
const intervals: ChartInterval[] = [
  { label: 'Vacuum', start: 1700000000, end: 1700000600, color: '#8b5cf6' },
  { label: 'Ramp P&T', start: 1700000600, end: 1700002100, color: '#f59e0b' },
]
</script>

Props

PropTipoDefaultDescripción
timestampsnumber[]Requerido. Unix timestamps en segundos, orden ascendente.
seriesChartSeries[]Requerido. Array de series con el dataset completo en data.
leftAxisAxisConfigRequerido. Configuración eje Y izquierdo.
rightAxisAxisConfigRequerido. Configuración eje Y derecho.
intervalsChartInterval[]undefinedMarcas de fase opcionales (bandas verticales con label).

Types

ts
interface ChartSeries {
  key: string // Identificador único
  label: string // Texto en la leyenda
  unit: string // Unidad (informativo)
  color: string // Color hex, ej. '#f43f5e'
  axis: 'left' | 'right' // Escala Y
  data: number[] // Valores; mismo índice que timestamps
  bold?: boolean // Línea más gruesa y opaca
  visible?: boolean // false = oculta al init
  type?: 'value' | 'setpoint' | 'band'
  bandPair?: string // key de la serie par al usar type: 'band'
}

interface AxisConfig {
  label: string
  unit: string
  color: string
}

interface ChartInterval {
  label: string // Texto dentro de la banda
  start: number // Unix timestamp inicio (segundos)
  end: number // Unix timestamp fin (segundos)
  color?: string // Color hex — default '#6366f1'
}

type de serie

ValorEfecto visual
'value'Línea continua (default)
'setpoint'Línea discontinua [6,3], alfa 0.85
'band'Área rellena entre esta serie y la indicada en bandPair

Migración desde TimeSeriesChart

TimeSeriesChart fue eliminado en v0.2.0. Usar TimeSeriesHistory si el caso de uso es visualizar un ciclo completo con zoom libre.

diff
- import { TimeSeriesChart } from '@bjaland/hiperbaric-chart'
+ import { TimeSeriesHistory } from '@bjaland/hiperbaric-chart'

- <TimeSeriesChart :window-secs="7200" ... />
+ <TimeSeriesHistory ... />   <!-- sin windowSecs, muestra el rango completo -->