]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Bar config cleanup + some initial docs 1159/head
authorEvert Timberg <evert.timberg@gmail.com>
Thu, 4 Jun 2015 00:55:17 +0000 (20:55 -0400)
committerEvert Timberg <evert.timberg@gmail.com>
Thu, 4 Jun 2015 00:55:17 +0000 (20:55 -0400)
docs/02-Bar-Chart.md
src/Chart.Bar.js

index cc23f38b733d28e9fd80d85124c07868093f33b6..1254588614756ea00044771ad3d761d2fa6f9dab 100644 (file)
@@ -14,7 +14,10 @@ It is sometimes used to show trend data, and the comparison of multiple data set
 
 ### Example usage
 ```javascript
-var myBarChart = new Chart(ctx).Bar(data, options);
+var myBarChart = new Chart(ctx).Bar({
+       data: data, 
+       options: options
+});
 ```
 
 ### Data structure
@@ -25,18 +28,36 @@ var data = {
        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]
+
+                       // The properties below allow an array to be specified to change the value of the item at the given index
+                       // String  or array - the bar color
+                       backgroundColor: "rgba(220,220,220,0.2)",
+
+                       // String or array - bar stroke color
+                       borderColor: "rgba(220,220,220,1)",
+
+                       // Number or array - bar border width
+                       borderWidth: 1,
+
+                       // String or array - fill color when hovered
+                       hoverBackgroundColor: "rgba(220,220,220,0.2)",
+
+                       // String or array - border color when hovered
+                       hoverBorderColor: "rgba(220,220,220,1)",
+
+                       // The actual data
+                       data: [65, 59, 80, 81, 56, 55, 40],
+
+                       // String - If specified, binds the dataset to a certain y-axis. If not specified, the first y-axis is used.
+                       yAxisID: "y-axis-1",
                },
                {
                        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)",
+                       backgroundColor: "rgba(220,220,220,0.2)",
+                       borderColor: "rgba(220,220,220,1)",
+                       borderWidth: 1,
+                       hoverBackgroundColor: "rgba(220,220,220,0.2)",
+                       hoverBorderColor: "rgba(220,220,220,1)",
                        data: [28, 48, 40, 19, 86, 27, 90]
                }
        ]
@@ -53,40 +74,150 @@ These are the customisation options specific to Bar charts. These options are me
 
 ```javascript
 {
-       //Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value
-       scaleBeginAtZero : true,
+       // Boolean - if true, bars stack on top of each other
+       stacked: false,
+
+       hover: {
+               // String - We use a label hover mode since the x axis displays data by the index in the dataset
+               mode: "label"
+       },
+
+       scales: {
+               // The bar chart officially supports only 1 x-axis but uses an array to keep the API consistent. Use a scatter chart if you need multiple x axes. 
+               xAxes: [{
+                       // String - type of axis to use. Should not be changed from 'dataset'.
+                       scaleType: "dataset", // scatter should not use a dataset axis
+
+                       // Boolean - if true, show the scale
+                       display: true,
+
+                       // String - position of the scale. possible options are "top" and "bottom" for dataset scales
+                       position: "bottom",
+
+                       // String - id of the axis so that data can bind to it
+                       id: "x-axis-1", // need an ID so datasets can reference the scale
+
+                       // grid line settings
+                       gridLines: {
+                               // Boolean - if true, show the grid lines
+                               show: true,
+
+                               // String - color of the grid lines
+                               color: "rgba(0, 0, 0, 0.05)",
+
+                               // Number - width of the grid lines
+                               lineWidth: 1,
+
+                               // Boolean - if true draw lines on the chart area
+                               drawOnChartArea: true,
+
+                               // Boolean - if true draw ticks in the axis area
+                               drawTicks: true,
+
+                               // Number - width of the grid line for the first index (index 0)
+                               zeroLineWidth: 1,
 
-       //Boolean - Whether grid lines are shown across the chart
-       scaleShowGridLines : true,
+                               // String - color of the grid line for the first index
+                               zeroLineColor: "rgba(0,0,0,0.25)",
 
-       //String - Colour of the grid lines
-       scaleGridLineColor : "rgba(0,0,0,.05)",
+                               // Boolean - if true, offset labels from grid lines
+                               offsetGridLines: false,
+                       },
 
-       //Number - Width of the grid lines
-       scaleGridLineWidth : 1,
+                       // label settings
+                       labels: {
+                               // Boolean - if true show labels
+                               show: true,
 
-       //Boolean - Whether to show horizontal lines (except X axis)
-       scaleShowHorizontalLines: true,
+                               // String - template string for labels
+                               template: "<%=value%>",
 
-       //Boolean - Whether to show vertical lines (except Y axis)
-       scaleShowVerticalLines: true,
+                               // Number - label font size
+                               fontSize: 12,
 
-       //Boolean - If there is a stroke on each bar
-       barShowStroke : true,
+                               // String - label font style
+                               fontStyle: "normal",
 
-       //Number - Pixel width of the bar stroke
-       barStrokeWidth : 2,
+                               // String - label font color
+                               fontColor: "#666",
 
-       //Number - Spacing between each of the X value sets
-       barValueSpacing : 5,
+                               // String - label font family
+                               fontFamily: "Helvetica Neue",
+                       },
+               }],
+               yAxes: [{
+                       // String - type of axis. 'linear' is the default but extensions may provide other types such as logarithmic
+                       scaleType: "linear",
 
-       //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 %}
-}
+                       // Boolean - if true, show the scale
+                       display: true,
+
+                       // String - position of axis. Vertical axes can have either "left" or "right"
+                       position: "left",
+
+                       // ID of the axis for data binding
+                       id: "y-axis-1",
+
+                       // grid line settings
+                       gridLines: {
+                               // Boolean - if true, show the grid lines
+                               show: true,
+
+                               // String - color of the grid lines
+                               color: "rgba(0, 0, 0, 0.05)",
+
+                               // Number - width of the grid lines
+                               lineWidth: 1,
+
+                               // Boolean - if true draw lines on the chart area
+                               drawOnChartArea: true,
+
+                               // Boolean - if true draw ticks in the axis area
+                               drawTicks: true,
+
+                               // Number - width of the grid line representing a numerical value of 0
+                               zeroLineWidth: 1,
+
+                               // String - color of the grid line representing a numerical value of 0
+                               zeroLineColor: "rgba(0,0,0,0.25)",
+                       },
+
+                       // Boolean - if true ensures that the scale always has a 0 point
+                       beginAtZero: false,
+
+                       // Object - if specified, allows the user to override the step generation algorithm.
+                       //                      Contains the following values
+                       //                              start: // number to start at
+                       //                              stepWidth: // size of step
+                       //                              steps: // number of steps
+                       override: null,
+
+                       // label settings
+                       labels: {
+                               // Boolean - if true show labels
+                               show: true,
+
+                               // String - template string for labels
+                               template: "<%=value%>",
+
+                               // Function - if specified this is passed the tick value, index, and the array of all tick values. Returns a string that is used as the label for that value
+                               userCallback: null,
+
+                               // Number - label font size
+                               fontSize: 12,
+
+                               // String - label font style
+                               fontStyle: "normal",
+
+                               // String - label font color
+                               fontColor: "#666",
+
+                               // String - label font family
+                               fontFamily: "Helvetica Neue",
+                       },
+               }],
+       },
+};
 ```
 
 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.
@@ -94,8 +225,11 @@ You can override these for your `Chart` instance by passing a second argument in
 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
+new Chart(ctx).Bar({
+       data: data, 
+       options: {
+               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.
index e15260dc4236e0240bb4567464b7018a5df7ca70..e1234cabd66d2b117a96e6be9a4b19c5b5150e67 100644 (file)
@@ -5,7 +5,6 @@
         Chart = root.Chart,
         helpers = Chart.helpers;
 
-
     var defaultConfig = {
 
         stacked: false,
                     offsetGridLines: true,
                 },
 
-                // scale numbers
-                beginAtZero: false,
-                integersOnly: false,
-                override: null,
-
                 // label settings
                 labels: {
                     show: true,
@@ -67,7 +61,6 @@
 
                 // scale numbers
                 beginAtZero: false,
-                integersOnly: false,
                 override: null,
 
                 // label settings