I don't think there is inbuilt support for that. Best I can think of right now is to use the regular endLabel for the end of the series and a markPoint with symbolSize 0 on top of the first datapoint as start label.
const dataset = [[150, 230, 224, 218, 135, 147, 260], [230, 160, 70, 135, 147, 140, 110], [135, 147, 260, 340, 290, 110, 90]];
const entity = ['Mangolia', 'Mitzerland','Torsica'];
const seriesList = [];
for (const index in dataset) {
const row = dataset[index];
seriesList.push({
type: 'line',
data: row,
endLabel: {
show: true,
formatter: () => 'end label = ' + row[row.length - 1]
},
markPoint: {
symbolSize: 0,
label: {position: 'left'},
data: [{coord: [0, row[0]], value: entity[index]}]
}
});
}
option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: seriesList
};
Start label
markPoint: {
symbolSize: 0,
label: {
position: 'left',
formatter: (params)=> `${params.value} = ${params.data.coord[1]}`
},
data: [{coord: [0, row[0]], value: entity[index]}]
}
End label
endLabel: {
show: true,
formatter: (params) => 'end label = ' + row[row.length - 1]
}
You can also use endLabel to show label at end.
Also, to show label at start you can use Markpoint with formatter to show series name and start value.