I am trying to export a Pie chart with data labels. I'm using the Phantomjs server side export functionality. I get the chart image back correctly but the datalabels don't show up. The sample data structure in the web version adds the data labels as expected.
Is there specific configuration requited to get the data labels to show up?
I'm on HIghcharts 4.0.1
The JSON I'm sending over to the phantom server is:
{"infile":"{ legend: {enabled: false},chart: {borderWidth: 0},colors: ['#4572A7', '#AA4643', '#89A54E', '#80699B', '#3D96AE', '#DB843D', '#92A8CD', '#A47D7C', '#B5CA92'],credits: {text:'CannLabs'},title: {text: 'Potency results'},plotOptions: {pie: {dataLabels: {enabled: true,color: 'black',format: '<b>{point.name}</b>: {point.percentage:.1f} %'}}},series: [{type: 'pie',name: 'Potency Results',data: [{name: 'CBD-V', y: 0.00},{name:'CBD-A',y: 0.00},{name:'CBG',y: 0.00},{name:'CBD',y: 0.01},{name:'THC-V',y: 0.00},{name:'CBN',y: 0.01},{name:'THC',y: 0.87},{name:'CBC',y: 0.02},{name:'THC-A',y: 0.00}]}]};"}
This appears to be a bug in the 4.0.1 version of highcharts. I upgraded to the master version of the highcharts.js file and the labels are now rendered correctly.
If the accepted answer above doesn't help you, try adding animation: false to your series configuration, like so:
plotOptions: {
series: {
animation: false
}
},
Related
I have a chart that works very well when using the data module with Google spreadsheets. However I need to stop using Google sheets and use CSV on my own server instead. Some of my charts are working, but some aren't. Here's one that is not working. It uses the second column to set the point color, but it's not recognizing it. Any idea what might be wrong here? I edited some of the csv entries to try to make it work, but it's not working much:
http://jsfiddle.net/jmunger/cf6L4bmk/20/
var chart = Highcharts.chart('gfx', {
chart: {
type: 'bar',
},
data: {
csv: document.getElementById('csv').innerHTML,
itemDelimiter: ',',
seriesMapping: [{
color: 2,
label: 3
}]
}
});
console.log(chart);
That problem seems to be a bug in a data module, so I reported it here: https://github.com/highcharts/highcharts/issues/13283
As a workround you can use other color formats:
0;1;blue
1;2;rgb(155,155,55)
2;3;red
Live demo: http://jsfiddle.net/BlackLabel/0gjbn4m6/1/
Something about my env is interfering with Highcharts. I have simplified the code to:
let data = [];
data.push({ name: 'Temperature', data: fake1, color: 'orange', lineColor: 'red' });
Highcharts.stockChart(divId, {
navigator: {
series: {
color: 'orange',
fillColor: 'purple',
lineColor: 'red'
}
},
series: data,
});
The data series is rendered correctly - but with a blue line(s).
The project env is a very complicated DotNet App (not controlled by me) which has Kendo, and plottable and lots of stuff. I have tried commenting out dependencies, no luck.
I can get colors working in a completely standalone env, not in the dot net app. What should I do at this point? I need to control the line colors.
It turns out there are two highstock.js files (same name); one that depends on highcharts.css and one that doesn't. Use the one that doesn't.
I am saving a a chart as SVG, using the getGSV() method. The chart in question is a rather complex pie chart, that uses formatters to annotate the slices with information. These labels however do not show up in the SVG export, it just contains the unannotated chart. I am aware that by default, exporting HTML in svg is not supported, so i tried enabling the allowHTML option, but my problem remains unsolved.
In the method that assembles the data structure:
"dataLabels": {
style: {
width: '70px',
textAlign: 'right'
},
enabled: true,
useHTML: true, /*already defined in the chart options */
formatter: function()
{console.log(i18next.t("component."+this.point.name+".name")); return
i18next.t("component."+this.point.name+".name") + "<br>" + results[this.point.name]["pie_score"] + "%"},
"distance": -50,
},
and at another point, in the chart definition:
exporting: {
allowHTML: true,
enabled: false
},
The SVG is simply exported via chart.getSVG()...
To clarify, i am merely adding an export pipelin to existing code, so i know the charts themselves work and look as intended, they are only screwed up in the export.
When I am using the mapbubble I get an error 17
without it I see the map fine but of course no bubbles on the map :(
the data is
series : [{
name: 'Countries',
mapData: mapData,
color: '#E0E0E0',
enableMouseTracking: false
}, {
type: 'mapbubble',
name: 'Population 2013',
data: data,
maxSize: '12%',
mapData: mapData
}]
and again, if I remove mapbubble I see the map, but with the type, I receieve error 17
tx for any assistance
regards
Sean
'mapbubble' is Highmaps series type. For Highcharts use 'bubble'. You will need to load highcharts-more.
Demo: http://www.highcharts.com/demo/bubble
Error 17 means:
The requested series type does not exist
This error happens when you are setting chart.type or series.type to a
series type that isn't defined in Highcharts. A typical reason may be
that your are missing the extension file where the series type is
defined, for example in order to run an arearange series you need to
load the highcharts-more.js file.
Is it possible that you have highcharts-more.js missing?
Check this SO answer: HighCharts and Map Bubble are not compatible
I have a unsort data (on x-axis) and using Highcharts to display the graph. I knew the x-axis must sort to show the tooltip as the Highcharts document wrote. But my data could not be sorted by some reasons, so could anyone meet this problem before, please give any idea/solution to show the tooltip without sort x-axis data. If I sort, my data will be wrong.
My js:
var data = [
[5.875, -20],
[8.1875, -30],
[8.875, -40],
[9.5, -50],
[10.125, -60],
[10.5, -70],
[10.875, -80],
[11.375, -90],
[11.6875, -100],
[11.875, -110],
[12.0625, -120],
[12.625, -130],
[12.4375, -140],
[12.625, -150],
[12.5, -160],
[12.4375, -170],
[12.4375, -180],
[12.375, -190],
[12.25, -200],
[12.1875, -210],
[11.9375, -220],
[11.625, -230],
[11.5, -240],
[11.125, -250],
[10.75, -260],
[10.625, -270]
];
$('#container').highcharts({
series: [{
data: data
}]
});
Or please check here http://jsfiddle.net/vuong/jedLowyv/4/
Thank you so much and have a nice day.
You have two options:
sort your data: http://jsfiddle.net/jedLowyv/5/
use scatter series with lineWidth: http://jsfiddle.net/jedLowyv/6/ (not: tooltip will show up only when hover one of markers directly)