CanvasJS is a client-side library and has to be prevented from rendering at server-side. When you try to generate build for production, it causes issue with libraries that depend on the browser’s window object. You can import CanvasJS package dynamically by passing ssr: false
that disables importing of components that are not needed for SSR. Please take a look at this sample project for a working example on adding CanvasJS React Charts in Next.js app.
Also, please refer to this article for more information on adding CanvasJS chart in Next.js apps.
—
Vishwas R
Team CanvasJS
The solution to show the label 40 depends on multiple factors based on chart-options you are using. Setting axisX viewportMinimum to a 38/39 or setting labelAngle to a positive value should work. However, these are not the limited set of solutions as we don’t know the exact use-case of yours. Kindly try out the solutions & see if it works. If you are still facing issue, kindly create a JSFiddle reproducing the issue (with sample data) & share it with us so that we can look into the chart-options being used, understand the scenario better and help you out.
—
Vishwas R
Team CanvasJS
It’s not possible to align multi-series box and whisker chart side-by-side as of now, similar to column chart. However, you can increase / decrease x-values of datapoints to achieve the same. Please take a look at this updated JSFiddle for an example on the same.
—
Vishwas R
Team CanvasJS
Zooming into a region by selecting region based on taps is not available as an inbuilt feature as of now. However, you can achieve the same with few lines of code by changing the viewport based on the clicks / taps. Please take a look at this JSFiddle for an example on the same.
—
Vishwas R
Team CanvasJS
You can place an icon (info or question-mark) to the top-right of the chart & pass description as title attribute of the icon. The description will be shown in a tooltip on hovering the icon. Please take a look at this JSFiddle for an example.
Also, you can convert it to a JavaScript function so that you can add information for multiple charts. Please refer to this JSFiddle for an example on the same.
—
Vishwas R
Team CanvasJS
Heatmap is not available as of now. However, you can achieve heatmap using Stacked Column 100% chart as shown in this JSFiddle.
—
Vishwas R
Team CanvasJS
Using date-time values in x-value seems to be working fine. Please take a look at this documentation page for examples on the same. If you are still facing issue, kindly create JSFiddle reproducing the issue you are facing and share it with us so that we can look into the code/chart-options being used, understand the scenario better and help you out.
—
Vishwas R
Team CanvasJS
The chart-options that you have shared seems to be working fine, please take a look at this JSFiddle.
If you are still facing issue, kindly create JSFiddle (or sample project if it’s Angular/React/Vue) reproducing the issue you are facing and share it with us so that we can run it at our end to understand the scenario better and help you out.
—
Vishwas R
Team CanvasJS
@priyanshiagrawalsmprgmail-com,
You can place a div with gradient as background of plotarea and set it’s width & height with respect to the width & height of axisX & axisY bounds. Please take a look at this JSFiddle for an example on the same.
—
Vishwas R
Team CanvasJS
Updating datapoint value via chart option and re-rendering the chart seems to be working fine. To do so, you need to get the reference to the chart by passing the call-back function like @chart-ref="chartRef"
to the component. Please refer to the code-snippet below.
// Getting Chart Reference
<CanvasJSChart :options="options" @chart-ref="chartRef" />
chartRef(chart) {
this.chart = chart;
}
// Updating Datapoint value
this.chart.options.data[0].dataPoints.filter(
(item) => (item.label == 'apple')
)[0].y = 40;
this.chart.render();
Please take a look at this updated Stackblitz for complete code.
—
Vishwas R
Team CanvasJS
We have added CanvasJS Vue Charts package to NPM registry. Kindly check out the NPM package & let us know if that fixes the issue you are facing.
However, if you still like to use Vue component, kindly create separate chunks for CanvasJS during build and it should work fine in this case. Please find the vite-configuration below.
export default defineConfig({
plugins: [vue()],
build: {
rollupOptions: {
output: {
manualChunks: {
canvasjs: ['./src/assets/CanvasJSVueComponent.vue', './src/assets/canvasjs.min.js'],
},
}
}
}
})
Kindly download the latest version of CanvasJS from our download page & let us know your feedback.
—
Vishwas R
Team CanvasJS
You can use datapoint / dataseries click event-handler to change the color of the datapoint on clicking them. Please refer to the code-snippet below.
click: function(e) {
e.chart.options.data[e.dataSeriesIndex].dataPoints[e.dataPointIndex].color = "red";
e.chart.render();
}
Please take a look at this updated JSFiddle for working code.
—
Vishwas R
Team CanvasJS
The issue seems to be happening only when you use Test_json.json as you are using variable ‘Demo_json’ in template (index.html – line no 93). Changing it to Test_json while working with Test_json.json file seems to be working fine. Please take a look at this updated sample project.
—
Vishwas R
Team CanvasJS
Ling JS,
You can update the range of the StockChart based on the changes made in the datepickers outside the chart by updating the values of inputFields. Please take a look at this JSFiddle for an example on the same.
—
Vishwas R
Team CanvasJS