Reputation: 961
I have a highcharts line chart with the data source being an HTML table.
I want to add a custom marker for a specific marker on a specific series to indicate a break even point.
My highcharts js:
$(function () {
var chart = new Highcharts.Chart({
colors: ["#cc1c0d", "#1d63af" , "#9eb215"],
chart: {
type: 'line',
backgroundColor:'rgba(255, 255, 255, 0.85)',
renderTo: 'container'
},
data: {
table: 'sheet6'
},
title: {
text: 'Cost Comparison'
},
xAxis: {
tickInterval:3,
title: {
text: 'M'
},
},
plotOptions: {
series: {
marker: {
symbol: 'circle',
radius: 3,
fillColor: '#FFFFFF',
lineWidth: 2,
lineColor: null // inherit from series
},
shadow: true
}
},
yAxis: {
allowDecimals: false,
title: {
text: 'Cost'
},
labels: {
formatter: function () {
return Highcharts.numberFormat(this.value,0);
}
}
},
credits: {
enabled: false
},
tooltip: {
headerFormat: '<b>{series.name}</b><br>',
pointFormat: 'Month {point.x}: {point.y} kUSD'
},
});
});
And here is a sample of the data in the table:
<table border="0" cellpadding="0" cellspacing="0" id="sheet6" class="sheet6 gridlines">
<col class="col0">
<col class="col1">
<col class="col2">
<col class="col3">
<tbody>
<tr class="row0">
<td class="column0 style119 s">M</td>
<td class="column1 style117 f">M</td>
<td class="column2 style117 f">A</td>
<td class="column3 style117 f">Profit/Loss</td>
</tr>
<tr class="row1">
<td class="column0 style0 n">0</td>
<td class="column1 style118 f">0</td>
<td class="column2 style118 f">0</td>
<td class="column3 style118 f">0</td>
</tr>
<tr class="row2">
<td class="column0 style0 n">1</td>
<td class="column1 style118 f">119</td>
<td class="column2 style118 f">551</td>
<td class="column3 style118 f">-432</td>
</tr>
<tr class="row3">
<td class="column0 style0 n">2</td>
<td class="column1 style118 f">238</td>
<td class="column2 style118 f">717</td>
<td class="column3 style118 f">-479</td>
</tr>
<tr class="row4">
<td class="column0 style0 n">3</td>
<td class="column1 style118 f">357</td>
<td class="column2 style118 f">860</td>
<td class="column3 style118 f">-504</td>
</tr>
<tr class="row5">
<td class="column0 style0 n">4</td>
<td class="column1 style118 f">476</td>
<td class="column2 style118 f">980</td>
<td class="column3 style118 f">-504</td>
</tr>
<tr class="row6">
<td class="column0 style0 n">5</td>
<td class="column1 style118 f">595</td>
<td class="column2 style118 f">991</td>
<td class="column3 style118 f">-396</td>
</tr>
<tr class="row7">
<td class="column0 style0 n">6</td>
<td class="column1 style118 f">713</td>
<td class="column2 style118 f">1002</td>
<td class="column3 style118 f">-288</td>
</tr>
<tr class="row8">
<td class="column0 style0 n">7</td>
<td class="column1 style118 f">832</td>
<td class="column2 style118 f">1012</td>
<td class="column3 style118 f">-180</td>
</tr>
<tr class="row9">
<td class="column0 style0 n">8</td>
<td class="column1 style118 f">951</td>
<td class="column2 style118 f">1023</td>
<td class="column3 style118 f">-72</td>
</tr>
<tr class="row10">
<td class="column0 style0 n">9</td>
<td class="column1 style118 f">1070</td>
<td class="column2 style118 f">1034</td>
<td class="column3 style118 f">37</td>
</tr>
<tr class="row11">
<td class="column0 style0 n">10</td>
<td class="column1 style118 f">1189</td>
<td class="column2 style118 f">1044</td>
<td class="column3 style118 f">145</td>
</tr>
<tr class="row12">
<td class="column0 style0 n">11</td>
<td class="column1 style118 f">1308</td>
<td class="column2 style118 f">1055</td>
<td class="column3 style118 f">253</td>
</tr>
<tr class="row13">
<td class="column0 style0 n">12</td>
<td class="column1 style118 f">1427</td>
<td class="column2 style118 f">1066</td>
<td class="column3 style118 f">361</td>
</tr>
<tr class="row14">
<td class="column0 style0 n">13</td>
<td class="column1 style118 f">1546</td>
<td class="column2 style118 f">1077</td>
<td class="column3 style118 f">469</td>
</tr>
<tr class="row15">
<td class="column0 style0 n">14</td>
<td class="column1 style118 f">1665</td>
<td class="column2 style118 f">1087</td>
<td class="column3 style118 f">578</td>
</tr>
<tr class="row16">
<td class="column0 style0 n">15</td>
<td class="column1 style118 f">1784</td>
<td class="column2 style118 f">1098</td>
<td class="column3 style118 f">686</td>
</tr>
<tr class="row17">
<td class="column0 style0 n">16</td>
<td class="column1 style118 f">1903</td>
<td class="column2 style118 f">1109</td>
<td class="column3 style118 f">794</td>
</tr>
<tr class="row18">
<td class="column0 style0 n">17</td>
<td class="column1 style118 f">2022</td>
<td class="column2 style118 f">1119</td>
<td class="column3 style118 f">902</td>
</tr>
<tr class="row19">
<td class="column0 style0 n">18</td>
<td class="column1 style118 f">2140</td>
<td class="column2 style118 f">1130</td>
<td class="column3 style118 f">1010</td>
</tr>
<tr class="row20">
<td class="column0 style0 n">19</td>
<td class="column1 style118 f">2259</td>
<td class="column2 style118 f">1141</td>
<td class="column3 style118 f">1119</td>
</tr>
<tr class="row21">
<td class="column0 style0 n">20</td>
<td class="column1 style118 f">2378</td>
<td class="column2 style118 f">1152</td>
<td class="column3 style118 f">1227</td>
</tr>
<tr><td></td></tr> </tbody>
</table>
I have seen a number of examples to add a custom marker, but my JS differs from them and so I am unsure where to add the custom marker in the code.
All the examples that I have seen have had their data embedded in the highcharts js. But my data comes from a table.
Update 1:
I have created a fiddle: https://jsfiddle.net/partisanentity/n5gaf26o/
If you look at the blue series (Automated) it begins to intersect with the red series (Manual) at month 8. I want to add a custom marker to the blue series at month 8.
The indication for the break even (intersection) will not come from the table. It will come from a different part of my code that uses PHP.
All I need to know is where in my example do I need to add this and how?
Upvotes: 0
Views: 472
Reputation: 7886
Parsing your data in the data's complete function in chart's options and setting marker settings should resolve the issue.
Marker options can be set per point, e.g. when point is given as object - example: jsfiddle.net/25ed2gb3
Upvotes: 0