Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adding stepped line to line and area charts #9425

Merged
merged 4 commits into from
Dec 23, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/visualize/area.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ _silhouette_:: Displays each aggregation as variance from a central line.

Checkboxes are available to enable and disable the following behaviors:

*Smooth Lines*:: Check this box to curve the top boundary of the area from point to point.
*Line Mode*:: You can choose between straight line, smoothed line and stepped line.
*Set Y-Axis Extents*:: Check this box and enter values in the *y-max* and *y-min* fields to set the Y axis to specific
values.
*Scale Y-Axis to Data Bounds*:: The default Y axis bounds are zero and the maximum value returned in the data. Check
Expand Down
3 changes: 1 addition & 2 deletions docs/visualize/line.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ regularize the display of data sets with variabilities that are themselves highl
the variability is itself variable over the domain being examined, is known as _heteroscedastic_ data. For example, if
a data set of height versus weight has a relatively narrow range of variability at the short end of height, but a wider
range at the taller end, the data set is heteroscedastic.
*Smooth Lines*:: Check this box to curve the line from point to point. Bear in mind that smoothed lines necessarily
affect the representation of your data and create a potential for ambiguity.
*Line Mode*:: You can choose between straight line, smoothed line and stepped line.
*Show Connecting Lines*:: Check this box to draw lines between the points on the chart.
*Show Circles*:: Check this box to draw each data point on the chart as a small circle.
*Current time marker*:: For charts of time-series data, check this box to draw a red line on the current time.
Expand Down
11 changes: 10 additions & 1 deletion src/core_plugins/kbn_vislib_vis_types/public/area.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ export default function HistogramVisType(Private) {
addTooltip: true,
addLegend: true,
legendPosition: 'right',
smoothLines: false,
scale: 'linear',
interpolate: 'linear',
mode: 'stacked',
Expand All @@ -41,6 +40,16 @@ export default function HistogramVisType(Private) {
value: 'bottom',
text: 'bottom',
}],
interpolationModes: [{
value: 'linear',
text: 'straight',
}, {
value: 'cardinal',
text: 'smoothed',
}, {
value: 'step-after',
text: 'stepped',
}],
scales: ['linear', 'log', 'square root'],
modes: ['stacked', 'overlap', 'percentage', 'wiggle', 'silhouette'],
editor: areaTemplate
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
<div>
<label>
<input type="checkbox" value="{{smoothLines}}" ng-model="vis.params.smoothLines" name="smoothLines"
ng-checked="vis.params.smoothLines">
Smooth Lines
Line Mode
</label>
<select
class="form-control"
ng-model="vis.params.interpolate"
ng-options="mode.value as mode.text for mode in vis.type.params.interpolationModes"
>
</select>
</div>
11 changes: 10 additions & 1 deletion src/core_plugins/kbn_vislib_vis_types/public/line.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ export default function HistogramVisType(Private) {
addLegend: true,
legendPosition: 'right',
showCircles: true,
smoothLines: false,
interpolate: 'linear',
scale: 'linear',
drawLinesBetweenPoints: true,
Expand All @@ -41,6 +40,16 @@ export default function HistogramVisType(Private) {
value: 'bottom',
text: 'bottom',
}],
interpolationModes: [{
value: 'linear',
text: 'straight',
}, {
value: 'cardinal',
text: 'smoothed',
}, {
value: 'step-after',
text: 'stepped',
}],
scales: ['linear', 'log', 'square root'],
editor: lineTemplate
},
Expand Down
7 changes: 5 additions & 2 deletions src/ui/public/vislib/lib/types/point_series.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,18 @@ export default function ColumnHandler(Private) {

const createSeries = (cfg, series) => {
const stacked = ['stacked', 'percentage', 'wiggle', 'silhouette'].includes(cfg.mode);
let interpolate = cfg.interpolate;
// for backward compatibility when loading URLs or configs we need to check smoothLines
if (cfg.smoothLines) interpolate = 'cardinal';

return {
type: 'point_series',
series: _.map(series, (seri) => {
return {
show: true,
type: cfg.type || 'line',
mode: stacked ? 'stacked' : 'normal',
interpolate: cfg.interpolate,
smoothLines: cfg.smoothLines,
interpolate: interpolate,
drawLinesBetweenPoints: cfg.drawLinesBetweenPoints,
showCircles: cfg.showCircles,
radiusRatio: cfg.radiusRatio,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ export default function AreaChartFactory(Private) {
showCircles: true,
radiusRatio: 9,
showLines: true,
smoothLines: false,
interpolate: 'linear',
color: undefined,
fillColor: undefined,
Expand Down Expand Up @@ -68,7 +67,7 @@ export default function AreaChartFactory(Private) {
const color = this.handler.data.getColorFunc();
const xScale = this.getCategoryAxis().getScale();
const yScale = this.getValueAxis().getScale();
const interpolate = (this.seriesConfig.smoothLines) ? 'cardinal' : this.seriesConfig.interpolate;
const interpolate = this.seriesConfig.interpolate;
const isHorizontal = this.getCategoryAxis().axisConfig.isHorizontal();

// Data layers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ export default function LineChartFactory(Private) {
showCircles: true,
radiusRatio: 9,
showLines: true,
smoothLines: false,
interpolate: 'linear',
color: undefined,
fillColor: undefined
Expand Down Expand Up @@ -142,7 +141,7 @@ export default function LineChartFactory(Private) {
const xAxisFormatter = this.handler.data.get('xAxisFormatter');
const color = this.handler.data.getColorFunc();
const ordered = this.handler.data.get('ordered');
const interpolate = (this.seriesConfig.smoothLines) ? 'cardinal' : this.seriesConfig.interpolate;
const interpolate = this.seriesConfig.interpolate;
const isHorizontal = this.getCategoryAxis().axisConfig.isHorizontal();

const line = svg.append('g')
Expand Down