¿Hay alguna forma de ajustar el contenido a la escala de precios correcta en gráficos ligeros? No encontré ninguna información para eso en la documentación.
Estoy tratando de mostrar dos series de datos, pero están en diferentes rangos (decenas de miles frente a decenas)
Aquí está mi jsfiddle. Agradecería cualquier pista. https://jsfiddle.net/05zx4e76/5/
var chart = LightweightCharts.createChart(tvchart, { width: '600', height: '300', rightPriceScale: { visible: true, borderColor: 'rgba(197, 203, 206, 1)', lockVisibleTimeRangeOnResize: true, }, localization: { locale: 'en-US', }, leftPriceScale: { visible: true, borderColor: 'rgba(197, 203, 206, 1)', lockVisibleTimeRangeOnResize: true, }, grid: { horzLines: { color: '#363C4E', }, vertLines: { color: '#2B2B43', }, }, crosshair: { mode: LightweightCharts.CrosshairMode.Normal, }, timeScale: { borderColor: 'rgba(197, 203, 206, 1)', }, handleScroll: { vertTouchDrag: false, }, layout: { backgroundColor: '#2B2B43', lineColor: '#2B2B43', textColor: '#D9D9D9', } }); chart.applyOptions({ timeScale: { rightOffset: 12, barSpacing: 3, fixLeftEdge: false, rightBarStaysOnScroll: false, borderVisible: false, borderColor: '#fff000', visible: true, timeVisible: true, secondsVisible: false } } );Si intenta utilizar la compilación de development en lugar de la de production (simplemente reemplace una cadena en la ruta al paquete independiente), obtendrá un error: Error: Assertion failed: data must be asc ordered by time, index=1, time=1643907722, prev time=1643911322 , eso significa que los datos de su serie de líneas no están ordenados como deberían.
Si ordena sus datos inicialmente o agrega .sort((a, b) => a.time - b.time) junto a la matriz de datos de línea, funcionará como se esperaba.
Resuelto por lo siguiente:
chart.priceScale('right').applyOptions({ scaleMargins: { top: 0.96, bottom: 0, }, });No tengo idea de cómo funciona. La documentación no tiene una descripción adecuada. https://tradingview.github.io/lightweight-charts/docs/api/interfaces/PriceScaleOptions