As zero value is not supported in logarithmic axis, you can set the value to null by parsing through the datapoints before rendering. Please find the code-snippet below.
function parseZeroValue() {
var data = chart.options.data;
for(var i = 0; i < data.length; i++) {
for(var j =0; j < data[i].dataPoints.length; j++) {
var yValue = data[i].dataPoints[j].y;
if(yValue === 0) {
data[i].dataPoints[j].y = null; //Set this to some value like 0.01, if you like to show column
data[i].dataPoints[j].toolTipContent = ("{x}: " + yValue);
}
}
}
}
Please take a look at this JSFiddle for complete code. Also refer to this JSFiddle which shows how to set minimum height in column chart.
—
Vishwas R
Team CanvasJS
A logarithmic axis can only plot positive values. There simply is no way to put negative values or zero on a logarithmic axis.
Fundamental: If 10L = Z, then L is the logarithm (base 10) of Z. If L is a negative value, then Z is a positive fraction less than 1.0. If L is zero, then Z equals 1.0. If L is greater than 0, then Z is greater than 1.0. Note that there no value of L will result in a value of Z that is zero or negative. Logarithms are simply not defined for zero or negative numbers.
—
Vishwas R
Team CanvasJS
CanvasJS commercial version doesn’t carry any watermark or credit link. You can purchase commercial version from the pricing page.
For further queries, please contact sales@canvasjs.com.
—
Vishwas R
Team CanvasJS
Padding or offset in indexlabel is not available as of now. However, by adding unicode space / braille pattern dots-0 in the beginning / end, you can adjust indexlabel to be shown within the slice of doughnut. Please take a look at this updated JSFiddle for working example.
—
Vishwas R
Team CanvasJS
There is no changes made related to stripline in recent releases. However, I observe that the JSFiddle provided in the other forum thread seems to be working fine. Also the color property is not set to transparent in the JSFiddle that you have shared. Setting it to transparent (currStripline.set("color", "transparent");
) seems to be working fine. Please take a look at this updated JSFiddle for complete working code.
—
Vishwas R
Team CanvasJS
You can update datapoints & re-render chart at every 10 seconds with the help of setInterval. Please refer to this forum thread for more information & examples.
—
Vishwas R
Team CanvasJS
The code will work with trial version – which is fully-featured & can be used to evaluate for upto 30 days. You can check out license page for license-related queries or contact sales@canvasjs.com.
—
Vishwas R
Team CanvasJS
In the sample project that you have shared, there are couple issues in parsing the data that you are fetching from database. Parsing the response-data properly seems to be working fine. Please take a look at this updated sample project.
—
Vishwas R
Team CanvasJS
Thanks for reporting the use-case. There was a minor issue with the object reference in the external code added for exporting the chart data as CSV. We have updated the same, please take a look at updated JSFiddle.
—
Vishwas R
Team CanvasJS
The sample shared seems to have some dependency issues & is not working locally. Please refer to the screenshot below.
Can you kindly share working sample along with all the dependencies so that we can run it locally, understand the scenario better and help you out?
—
Vishwas R
Team CanvasJS
We are looking into your query & get back to you at the earliest.
—
Vishwas R
Team CanvasJS
Previously shared solution seems to be working only for single-series & not for multi-series. The code provided in the previously shared solution can be further improved to make it work with multi-series chart as shown in below code-snippet.
function convertChartDataToCSV(args) {
var result = '',
ctr, keys, columnDelimiter, lineDelimiter, data;
data = args.data || null;
if (data == null || !data.length) {
return null;
}
columnDelimiter = args.columnDelimiter || ',';
lineDelimiter = args.lineDelimiter || '\n';
var mergedData = mergeData(data);
keys = Object.keys(mergedData[0]);
result = '';
result += keys.join(columnDelimiter);
result += lineDelimiter;
mergedData.forEach(function (item) {
ctr = 0;
keys.forEach(function (key) {
if (ctr > 0) result += columnDelimiter;
result += (typeof (item[key]) != undefined ? item[key] : "");
ctr++;
});
result += lineDelimiter;
});
return result;
}
Please take a look at this JSFiddle for working code. Also take a look at this external plugin, which has been updated to work with multi-series chart.
—
Vishwas R
Team CanvasJS
[Update]
We have just released v3.4 Beta-1 with this feature. Please refer to the release blog for more information. Do download the latest version from download page & let us know your feedback.
—
Vishwas R
Team CanvasJS
You can reset the axis range programmatically by setting viewportMinimum & viewportMaximum to null. Please refer to the code-snippet below which shows how to reset the axis range on button click.
document.getElementById("resetChart").addEventListener("click", function() {
chart.axisX[0].set("viewportMinimum", null, false);
chart.axisX[0].set("viewportMaximum", null);
});
Please take a look at this JSFiddle for complete code.
—
Vishwas R
Team CanvasJS