|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- ---
- title: Bar Chart
- anchor: bar-chart
- ---
-
- ### Introduction
- A bar chart is a way of showing data as bars.
-
- It is sometimes used to show trend data, and the comparison of multiple data sets side by side.
-
- <div class="canvas-holder">
- <canvas width="250" height="125"></canvas>
- </div>
-
- ### Example usage
- ```javascript
- var myBarChart = new Chart(ctx).Bar(data, options);
- ```
-
- ### Data structure
-
- ```javascript
- var data = {
- labels: ["January", "February", "March", "April", "May", "June", "July"],
- datasets: [
- {
- label: "My First dataset",
- fillColor: "rgba(220,220,220,0.5)",
- strokeColor: "rgba(220,220,220,0.8)",
- highlightFill: "rgba(220,220,220,0.75)",
- highlightStroke: "rgba(220,220,220,1)",
- data: [65, 59, 80, 81, 56, 55, 40]
- },
- {
- label: "My Second dataset",
- fillColor: "rgba(151,187,205,0.5)",
- strokeColor: "rgba(151,187,205,0.8)",
- highlightFill: "rgba(151,187,205,0.75)",
- highlightStroke: "rgba(151,187,205,1)",
- data: [28, 48, 40, 19, 86, 27, 90]
- }
- ]
- };
- ```
- The bar chart has the a very similar data structure to the line chart, and has an array of datasets, each with colours and an array of data. Again, colours are in CSS format.
- We have an array of labels too for display. In the example, we are showing the same data as the previous line chart example.
-
- The label key on each dataset is optional, and can be used when generating a scale for the chart.
-
- ### Chart Options
-
- These are the customisation options specific to Bar charts. These options are merged with the [global chart configuration options](#getting-started-global-chart-configuration), and form the options of the chart.
-
- ```javascript
- {
- //Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value
- scaleBeginAtZero : true,
-
- //Boolean - Whether grid lines are shown across the chart
- scaleShowGridLines : true,
-
- //String - Colour of the grid lines
- scaleGridLineColor : "rgba(0,0,0,.05)",
-
- //Number - Width of the grid lines
- scaleGridLineWidth : 1,
-
- //Boolean - Whether to show horizontal lines (except X axis)
- scaleShowHorizontalLines: true,
-
- //Boolean - Whether to show vertical lines (except Y axis)
- scaleShowVerticalLines: true,
-
- //Boolean - If there is a stroke on each bar
- barShowStroke : true,
-
- //Number - Pixel width of the bar stroke
- barStrokeWidth : 2,
-
- //Number - Spacing between each of the X value sets
- barValueSpacing : 5,
-
- //Number - Spacing between data sets within X values
- barDatasetSpacing : 1,
- {% raw %}
- //String - A legend template
- legendTemplate : "<ul class=\"<%=name.toLowerCase()%>-legend\"><% for (var i=0; i<datasets.length; i++){%><li><span style=\"background-color:<%=datasets[i].fillColor%>\"></span><%if(datasets[i].label){%><%=datasets[i].label%><%}%></li><%}%></ul>"
- {% endraw %}
- }
- ```
-
- You can override these for your `Chart` instance by passing a second argument into the `Bar` method as an object with the keys you want to override.
-
- For example, we could have a bar chart without a stroke on each bar by doing the following:
-
- ```javascript
- new Chart(ctx).Bar(data, {
- barShowStroke: false
- });
- // This will create a chart with all of the default options, merged from the global config,
- // and the Bar chart defaults but this particular instance will have `barShowStroke` set to false.
- ```
-
- We can also change these defaults values for each Bar type that is created, this object is available at `Chart.defaults.Bar`.
-
- ### Prototype methods
-
- #### .getBarsAtEvent( event )
-
- Calling `getBarsAtEvent(event)` on your Chart instance passing an argument of an event, or jQuery event, will return the bar elements that are at that the same position of that event.
-
- ```javascript
- canvas.onclick = function(evt){
- var activeBars = myBarChart.getBarsAtEvent(evt);
- // => activeBars is an array of bars on the canvas that are at the same position as the click event.
- };
- ```
-
- This functionality may be useful for implementing DOM based tooltips, or triggering custom behaviour in your application.
-
- #### .update( )
-
- Calling `update()` on your Chart instance will re-render the chart with any updated values, allowing you to edit the value of multiple existing points, then render those in one animated render loop.
-
- ```javascript
- myBarChart.datasets[0].bars[2].value = 50;
- // Would update the first dataset's value of 'March' to be 50
- myBarChart.update();
- // Calling update now animates the position of March from 90 to 50.
- ```
-
- #### .addData( valuesArray, label )
-
- Calling `addData(valuesArray, label)` on your Chart instance passing an array of values for each dataset, along with a label for those bars.
-
- ```javascript
- // The values array passed into addData should be one for each dataset in the chart
- myBarChart.addData([40, 60], "August");
- // The new data will now animate at the end of the chart.
- ```
-
- #### .removeData( )
-
- Calling `removeData()` on your Chart instance will remove the first value for all datasets on the chart.
-
- ```javascript
- myBarChart.removeData();
- // The chart will now animate and remove the first bar
- ```
|