line
Line
Line Chart reusable API module that allows us rendering a multi line and configurable chart.
Requires: module:d3-array,
Example
let lineChart = line();
lineChart
.width(500);
d3Selection.select('.css-selector')
.datum(dataset)
.call(lineChart);
- Line
- exports(_selection, _data) ⏏
- static
- .axisTimeCombinations
- .animationDuration(_x) ⇒
duration|module - .xAxisLabel(_x) ⇒
string|module - .yAxisLabel(_x) ⇒
String|module - .colorSchema(_x) ⇒
Array.<string>|module - .colorMap([_x]) ⇒
object|module .dateLabel(_x) ⇒number|module- .xAxisCustomFormat(_x) ⇒
string|module - .xAxisFormat(_x) ⇒
String|Module - .xTicks(_x) ⇒
Number|module - .grid(_x) ⇒
String|module - .hasMinimumValueScale(_x) ⇒
hasMinimumValueScale|module - .height(_x) ⇒
Number|module - .isAnimated(_x) ⇒
isAnimated|module - .lines(_x) ⇒
Array.<Object>|module - .lineCurve(_x) ⇒
curve|module - .lineGradient(_x) ⇒
Number|module - .isLoading(flag) ⇒
boolean|module - .locale(_x) ⇒
string|module - .margin(_x) ⇒
object|module - .numberFormat(_x) ⇒
string|module - .shouldShowAllDataPoints(_x) ⇒
shouldShowAllDataPoints|module - .tooltipThreshold(_x) ⇒
Number|module .topicLabel(_x) ⇒topicLabel|module.valueLabel(_x) ⇒valueLabel|module- .yAxisLabelPadding(_x=) ⇒
yAxisLabelPadding|module - .yTicks(_x) ⇒
number|module - .width(_x) ⇒
number|Module - .exportChart(filename, title) ⇒
Promise - .on() ⇒
module - .xAxisValueType([_x]) ⇒
string|module - .xAxisScale([_x]) ⇒
string|module
- inner
- ~D3Selection :
Array.<Array> - ~LineChartFlatData :
object - ~LineChartDataByTopic :
object - ~LineChartDataSorted :
Array.<object> - ~LineChartData :
object
- ~D3Selection :
- static
- exports(_selection, _data) ⏏
exports(_selection, _data) ⏏
This function creates the graph using the selection and data provided
Kind: Exported function
| Param | Type | Description |
|---|---|---|
| _selection | D3Selection | A d3 selection that represents the container(s) where the chart(s) will be rendered |
| _data | LineChartData | The data to attach and generate the chart |
exports.axisTimeCombinations
Exposes the constants to be used to force the x axis to respect a certain granularity current options: MINUTE_HOUR, HOUR_DAY, DAY_MONTH, MONTH_YEAR
Kind: static property of exports
Example
line.xAxisFormat(line.axisTimeCombinations.HOUR_DAY)
exports.animationDuration(_x) ⇒ duration | module
Gets or Sets the duration of the animation
Kind: static method of exports
Returns: duration | module - Current animation duration or Chart module to chain calls
Access: public
| Param | Type | Default | Description |
|---|---|---|---|
| _x | number | 1200 | Desired animation duration for the graph |
exports.xAxisLabel(_x) ⇒ string | module
Gets or Sets the label of the X axis of the chart
Kind: static method of exports
Returns: string | module - Current label of the X axis or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | string | Desired label for the X axis |
exports.yAxisLabel(_x) ⇒ String | module
Gets or Sets the label of the Y axis of the chart
Kind: static method of exports
Returns: String | module - Current label of the Y axis or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | string | Desired label for the Y axis |
exports.colorSchema(_x) ⇒ Array.<string> | module
Gets or Sets the colorSchema of the chart
Kind: static method of exports
Returns: Array.<string> | module - Current colorSchema or Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | Array.<string> | Desired colorSchema for the graph |
exports.colorMap([_x]) ⇒ object | module
Gets or Sets the colorMap of the chart
Kind: static method of exports
Returns: object | module - Current colorMap or Chart module to chain calls
Access: public
| Param | Type | Default | Description |
|---|---|---|---|
| [_x] | object | | Color map |
Example
lineChart.colorMap({groupName: 'colorHex', groupName2: 'colorString'})
exports.dateLabel(_x) ⇒ number | module
number | moduleDeprecated
Gets or Sets the dateLabel of the chart
Kind: static method of exports
Returns: number | module - Current dateLabel or Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | number | Desired dateLabel for the graph |
exports.xAxisCustomFormat(_x) ⇒ string | module
Exposes the ability to force the chart to show a certain x format
It requires a xAxisFormat of 'custom' in order to work.
NOTE: localization not supported
Kind: static method of exports
Returns: string | module - Current format or module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | string | Desired format for x axis, one of the d3.js date formats here |
exports.xAxisFormat(_x) ⇒ String | Module
Exposes the ability to force the chart to show a certain x axis grouping
Kind: static method of exports
Returns: String | Module - Current format or module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | string | Desired format, a combination of axisTimeCombinations (MINUTE_HOUR, HOUR_DAY, DAY_MONTH, MONTH_YEAR) Set it to 'custom' to make use of specific formats with xAxisCustomFormat |
Example
line.xAxisCustomFormat(line.axisTimeCombinations.HOUR_DAY)
exports.xTicks(_x) ⇒ Number | module
Exposes the ability to force the chart to show a certain x ticks. It requires a xAxisFormat of 'custom' in order to work.
NOTE: This value needs to be a multiple of 2, 5 or 10. They won't always work as expected, as D3 decides at the end
how many and where the ticks will appear.
Kind: static method of exports
Returns: Number | module - Current number or ticks or module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | number | Desired number of x axis ticks (multiple of 2, 5 or 10) |
exports.grid(_x) ⇒ String | module
Gets or Sets the grid mode.
Kind: static method of exports
Returns: String | module - Current mode of the grid or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | string | Desired mode for the grid ('vertical' |
exports.hasMinimumValueScale(_x) ⇒ hasMinimumValueScale | module
Gets or Sets the hasMinimumValueScale property of the chart, making yAxix bottom value to adjust to the minimum dataset value. By default this is 'false'
Kind: static method of exports
Returns: hasMinimumValueScale | module - Current hasMinimumValueScale flag or Chart module
Access: public
| Param | Type | Description |
|---|---|---|
| _x | Boolean | Desired minimum value flag |
exports.height(_x) ⇒ Number | module
Gets or Sets the height of the chart
Kind: static method of exports
Returns: Number | module - Current height or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | number | Desired width for the graph |
exports.isAnimated(_x) ⇒ isAnimated | module
Gets or Sets the isAnimated property of the chart, making it to animate when render.
Kind: static method of exports
Returns: isAnimated | module - Current isAnimated flag or Chart module
Access: public
| Param | Type | Description |
|---|---|---|
| _x | boolean | = false Desired animation flag |
exports.lines(_x) ⇒ Array.<Object> | module
Add custom horizontal lines to the Chart - this way you are able to plot arbitrary horizontal lines onto the chart with a specific color and a text annotation over the line.
Kind: static method of exports
Returns: Array.<Object> | module - Current lines or module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | Array.<object> | Array of Objects describing the lines |
Example
line.lines([{
y: 2,
name: 'Maximum threshold',
color: '#ff0000'
}])
exports.lineCurve(_x) ⇒ curve | module
Gets or Sets the curve of the line chart
Kind: static method of exports
Returns: curve | module - Current line curve or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | curve | Desired curve for the lines, default 'linear'. Other options are: basis, natural, monotoneX, monotoneY, step, stepAfter, stepBefore, cardinal, and catmullRom. Visit https://github.com/d3/d3-shape#curves for more information. |
exports.lineGradient(_x) ⇒ Number | module
Gets or Sets the gradient colors of the line chart when there is only one line
Kind: static method of exports
Returns: Number | module - Current color gradient or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | Array.<string> | Desired color gradient for the line (array of two hexadecimal numbers) |
exports.isLoading(flag) ⇒ boolean | module
Gets or Sets the loading state of the chart
Kind: static method of exports
Returns: boolean | module - Current loading state flag or Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| flag | boolean | Desired value for the loading state |
exports.locale(_x) ⇒ string | module
Pass language tag for the tooltip to localize the date. Uses Intl.DateTimeFormat, for compatability and support, refer to https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat
Kind: static method of exports
Returns: string | module - Current locale or module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | string | A language tag (BCP 47) like 'en-US' or 'fr-FR' |
exports.margin(_x) ⇒ object | module
Gets or Sets the margin object of the chart (top, bottom, left and right)
Kind: static method of exports
Returns: object | module - Current margin or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | object | Margin object to get/set |
exports.numberFormat(_x) ⇒ string | module
Gets or Sets the number format of the line chart
Kind: static method of exports
Returns: string | module - Current numberFormat or Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | string | = ',f' Desired numberFormat for the chart. See examples here |
exports.shouldShowAllDataPoints(_x) ⇒ shouldShowAllDataPoints | module
Gets or Sets the topicLabel of the chart
Kind: static method of exports
Returns: shouldShowAllDataPoints | module - Current shouldShowAllDataPoints or Chart module to chain calls
Access: public
| Param | Type | Default | Description |
|---|---|---|---|
| _x | boolean | false | Whether all data points should be drawn |
exports.tooltipThreshold(_x) ⇒ Number | module
Gets or Sets the minimum width of the graph in order to show the tooltip NOTE: This could also depend on the aspect ratio
Kind: static method of exports
Returns: Number | module - Current tooltip threshold or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | number | Desired tooltip threshold for the graph |
exports.topicLabel(_x) ⇒ topicLabel | module
topicLabel | moduleDeprecated
Gets or Sets the topicLabel of the chart
Kind: static method of exports
Returns: topicLabel | module - Current topicLabel or Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | number | Desired topicLabel for the graph |
exports.valueLabel(_x) ⇒ valueLabel | module
valueLabel | moduleDeprecated
Gets or Sets the valueLabel of the chart
Kind: static method of exports
Returns: valueLabel | module - Current valueLabel or Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | number | Desired valueLabel for the graph |
exports.yAxisLabelPadding(_x=) ⇒ yAxisLabelPadding | module
Gets or Sets the yAxisLabelPadding of the chart.
Kind: static method of exports
Returns: yAxisLabelPadding | module - Current yAxisLabelPadding or Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x= | number | 36 Desired yAxisLabelPadding for the graph |
exports.yTicks(_x) ⇒ number | module
Gets or Sets the number of ticks of the y axis on the chart
Kind: static method of exports
Returns: number | module - Current yTicks or Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | number | = 5 Desired yTicks |
exports.width(_x) ⇒ number | Module
Gets or Sets the width of the chart
Kind: static method of exports
Returns: number | Module - Current width or Line Chart module to chain calls
Access: public
| Param | Type | Description |
|---|---|---|
| _x | number | Desired width for the graph |
exports.exportChart(filename, title) ⇒ Promise
Chart exported to png and a download action is fired
Kind: static method of exports
Returns: Promise - Promise that resolves if the chart image was loaded and downloaded successfully
Access: public
| Param | Type | Description |
|---|---|---|
| filename | string | File title for the resulting picture |
| title | string | Title to add at the top of the exported picture |
exports.on() ⇒ module
Exposes an 'on' method that acts as a bridge with the event dispatcher We are going to expose this events: customMouseHover, customMouseMove, customMouseOut, customDataEntryClick, and customTouchMove
Kind: static method of exports
Returns: module - Bar Chart
Access: public
exports.xAxisValueType([_x]) ⇒ string | module
Gets or Sets the xAxisValueType.
Choose between 'date' and 'number'. When set to number the values of the x-axis must not
be dates anymore, but can be arbitrary numbers.
Kind: static method of exports
Returns: string | module - Current value type of the x-axis or Chart module to chain calls
Access: public
| Param | Type | Default | Description |
|---|---|---|---|
| [_x] | string | "'date'" | Desired value type of the x-axis |
Example
line.xAxisValueType('numeric')
exports.xAxisScale([_x]) ⇒ string | module
Gets or Sets the xAxisScale.
Choose between 'linear' and 'logarithmic'. The setting will only work if xAxisValueType is set to
'number' as well, otherwise it won't influence the visualization.
Kind: static method of exports
Returns: string | module - Current value type of the x-axis or Chart module to chain calls
Access: public
| Param | Type | Default | Description |
|---|---|---|---|
| [_x] | string | "'linear'" | Desired value type of the x-axis |
Example
line.xAxisValueType('numeric').xAxisScale('logarithmic')
exports~D3Selection : Array.<Array>
Kind: inner typedef of exports
Properties
| Name | Type | Description |
|---|---|---|
| length | number | Size of the selection |
| parentNode | DOMElement | Parent of the selection |
exports~LineChartFlatData : object
Kind: inner typedef of exports
Properties
| Name | Type | Description |
|---|---|---|
| topicName | string | Topic name (required) |
| topic | number | Topic identifier (required) |
| dates | Array.<object> | All date entries with values for that topic in ISO8601 format (required) |
Example
[
{
topicName: 'San Francisco',
name: 123,
date: '2017-01-16T16:00:00-08:00',
value: 1
}
]
exports~LineChartDataByTopic : object
Former data standard, it is currently calculated internally if not passed
Kind: inner typedef of exports
Properties
| Name | Type | Description |
|---|---|---|
| topicName | string | Topic name (required) |
| topic | number | Topic identifier (required) |
| dates | Array.<object> | All date entries with values for that topic in ISO8601 format (required) |
Example
{
topicName: 'San Francisco',
topic: 123,
dates: [
{
date: '2017-01-16T16:00:00-08:00',
value: 1
},
{
date: '2017-01-16T17:00:00-08:00',
value: 2
}
]
}
exports~LineChartDataSorted : Array.<object>
The Data Sorted is calculated internally in the chart in order to pass it to our tooltips
Kind: inner typedef of exports
Properties
| Name | Type | Description |
|---|---|---|
| date | string | |
| topics | Array.<object> | List of topics with values that date (required) |
Example
[
{
date: "2015-06-27T07:00:00.000Z",
topics: [
{
"name": 1,
"value": 1,
"topicName": "San Francisco"
},
{
"name": 2,
"value": 20,
"topicName": "Los Angeles"
},
{
"name": 3,
"value": 10,
"topicName": "Oakland"
}
]
},
{...}
]
exports~LineChartData : object
The data shape for the line chart. Note that up to version 2.10.1, this required a "dataByTopic" array described on LineChartDataByTopic. The "dataByTopic" schema still works, but we prefer a flat dataset as described here.
Kind: inner typedef of exports
Properties
| Name | Type | Description |
|---|---|---|
| data | Array.<LineChartFlatData> | Data values to chart (required) |
Example
{
data: [
{
topicName: 'San Francisco',
name: 1,
date: '2017-01-16T16:00:00-08:00',
value: 1
},
{
topicName: 'San Francisco',
name: 1,
date: '2017-01-17T16:00:00-08:00',
value: 2
},
{
topicName: 'Oakland',
name: 2,
date: '2017-01-16T16:00:00-08:00',
value: 3
},
{
topicName: 'Oakland',
name: 2,
date: '2017-01-17T16:00:00-08:00',
value: 7
}
]
}