For browser usage, use the auto-registration version that automatically installs the custom series when loaded:
<script src="./node_modules/echarts/dist/echarts.js"></script> <script src="./node_modules/@echarts-x/custom-bar-range/dist/index.auto.js"></script> <script> // No need to call echarts.use(), automatically registered const chart = echarts.init(...); const option = { series: [{ type: 'custom', renderItem: 'barRange', // ... }] } chart.setOption(option); </script>
See examples for more details.
For environments that need manual registration or when using AMD/CommonJS loaders:
// CommonJS const echarts = require('echarts'); const barRangeInstaller = require('@echarts-x/custom-bar-range'); echarts.use(barRangeInstaller); const chart = echarts.init(...); const option = { series: [{ type: 'custom', renderItem: '$CUSTOM_SERIES_NAME$', // ... }] } chart.setOption(option);
See examples for more details.
For modern module bundlers or native ES module environments:
npm install @echarts-x/custom-bar-range
import * as echarts from 'echarts'; import barRangeCustomSeriesInstaller from '@echarts-x/custom-bar-range'; echarts.use(barRangeCustomSeriesInstaller); const chart = echarts.init(...); const option = { series: [{ type: 'custom', renderItem: 'violin', // ... }] } chart.setOption(option);
See examples for more details.
The data of the series is an array of arrays. Each sub-array represents a bar.
const data = [ [0, 26.7, 32.5], [1, 25.3, 32.4], ];
The first element of the sub-array is the x value. The second and third elements are the lower and upper bounds of the bar.
The itemPayload
is an object that contains the following properties:
Property | Type | Default | Description |
---|---|---|---|
barWidth | number | string | 70% | The width of the bar. |
borderRadius | number | 0 | The border radius of the bar. |
margin | number | 10 | The margin between the bars and the text. |
To make sure the value axis and tooltip take the correct range, encode
should be set as follows:
encode: { x: 0, y: [1, 2], tooltip: [1, 2] }