Я хочу показать диаграмму старшего разряда для списка ценных бумаг. Я использую ag-grid для создания структуры таблицы.
Мне нужно показать диаграмму хай-чарт-спарклайн для движения цены акций за последние 5 дней в одном из столбцов.
Я пытался использовать функцию cellrenderer ag-grid для рендеринга диаграммы, но она не рендерила диаграмму.
Может ли кто-нибудь помочь сообщить, можем ли мы вообще создать диаграмму спарклайн-старшей диаграммы внутри Ag-сетки.
Столбец Ag-сетки, в котором будет создан график
{ headerName: 'Security Chart', field: 'SecurityChartData', width: 300, suppressMenu: true , cellRenderer: this.sparkLine }
функция sparkLine, в настоящее время использующая данные выборки 7, 5, 6, 6, 4
sparkLine() {
const dataAttr = "7, 5, 6, 6, 4 ".split('; ') ;
const data = dataAttr[0].split(', ').map(Number);
const options = {
series: [{
data,
pointStart: 1
}],
chart: {
type: dataAttr || 'area'
}
}
return <SparkLine options={options} />
}
Спарклайн код:
import React, { Component } from 'react' ;
import Highcharts from 'highcharts' ;
const defaultOptions = {
chart: {
backgroundColor: null,
borderWidth: 0,
type: 'area',
margin: [2, 0, 2, 0],
width: 250,
height: 40,
style: {
overflow: 'visible',
align : 'center'
},
// small optimalization, saves 1-2 ms each sparkline
skipClone: true
},
title: {
text: ''
},
credits: {
enabled: false
},
xAxis: {
labels: {
enabled: false
},
title: {
text: null
},
startOnTick: false,
endOnTick: false,
tickPositions: []
},
yAxis: {
endOnTick: false,
startOnTick: false,
labels: {
enabled: false
},
title: {
text: null
},
tickPositions: [0]
},
legend: {
enabled: false
},
tooltip: {
backgroundColor: 'red',
borderWidth: 1,
hideDelay: 0,
shared: true,
padding: 8,
borderColor: 'white',
borderRadius: 3,
positioner: function (w, h, point) {
return { x: point.plotX - w / 2, y: point.plotY - h };
}
},
plotOptions: {
series: {
animation: false,
lineWidth: 1,
shadow: false,
states: {
hover: {
lineWidth: 1
}
},
marker: {
radius: 1,
states: {
hover: {
radius: 2
}
}
},
fillOpacity: 0.25
},
column: {
negativeColor: '#910000',
borderColor: 'silver'
}
},
series: [{
data: [1,2,3]
}]
};
export default class SparkLine extends Component {
constructor (props) {
super(props)
}
componentDidMount () {
const options = Highcharts.merge(defaultOptions, this.props.options)
this.chart = Highcharts.chart(this.container, options)
}
componentWillUnmount () {
this.chart.destroy()
}
render () {
return (
<td
ref={container => this.container = container}
>
</td>
)
}
}