Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ce813d4

Browse files
authored
Merge pull request plotly#1422 from plotly/indicator
indicator js tutorial
2 parents 6354c7e + 6c180d2 commit ce813d4

9 files changed

+205
-85
lines changed

_posts/plotly_js/basic/gauge/2015-12-20-basic-gauge.html

Lines changed: 0 additions & 70 deletions
This file was deleted.

_posts/plotly_js/basic/gauge/2015-12-20-gauge-chart_plotly_js_index.html

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
title: JavaScript Graphing Library D3.js-based Indicator| Examples | Plotly
3+
name: Indicators
4+
permalink: javascript/indicator/
5+
description: How to make a D3.js-based gauge chart in javascript.
6+
layout: user-guide
7+
thumbnail: thumbnail/indicator.jpg
8+
language: plotly_js
9+
page_type: example_index
10+
has_thumbnail: true
11+
display_as: financial
12+
order: 4
13+
---
14+
{% assign examples = site.posts | where:"language","plotly_js" | where:"suite","indicator" | sort: "order" %}
15+
{% include auto_examples.html examples=examples %}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: Overview
3+
plot_url: https://codepen.io/plotly/embed/ymVYPV/?height=600&theme-id=15263&default-tab=result
4+
language: plotly_js
5+
suite: indicator
6+
order: 1
7+
sitemap: false
8+
arrangement: horizontal
9+
markdown_content: |
10+
11+
In this tutorial we introduce a new trace named "Indicator". The purpose of "indicator" is to visualize a single value specified by the "value" attribute.
12+
Three distinct visual elements are available to represent that value: number, delta and gauge. Any combination of them can be specified via the "mode" attribute.
13+
Top-level attributes are:
14+
- value: the value to visualize
15+
- mode: which visual elements to draw
16+
- align: how to align number and delta (left, center, right)
17+
- domain: the extent of the figure
18+
19+
Then we can configure the 3 different visual elements via their respective container:
20+
- number is simply a representation of the number in text. It has attributes:
21+
- valueformat: to format the number
22+
- prefix: a string before the number
23+
- suffix: a string after the number
24+
- font.(family|size): to control the font
25+
26+
"delta" simply displays the difference between the value with respect to a reference. It has attributes:
27+
- reference: the number to compare the value with
28+
- relative: whether that difference is absolute or relative
29+
- valueformat: to format the delta
30+
- (increasing|decreasing).color: color to be used for positive or decreasing delta
31+
- (increasing|decreasing).symbol: symbol displayed on the left of the delta
32+
- font.(family|size): to control the font
33+
- position: position relative to `number` (either top, left, bottom, right)
34+
35+
Finally, we can have a simple title for the indicator via `title` with 'text' attribute which is a string, and 'align' which can be set to left, center, and right.
36+
There are two gauge types: [angular](https://plot.ly/javascript/gauge-charts/) and [bullet](https://plot.ly/javascript/bullet-charts/). Let's fist look at one "angular gauge" example:
37+
38+
---
39+
var data = [{domain: {x: [0, 1], y: [0, 1]}, value: 450, title: {text: "Speed"},
40+
type: "indicator", mode: "gauge+number"}];
41+
42+
var layout = {width: 600, height: 400};
43+
Plotly.newPlot(gd,data,layout);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Bullet Gauge
3+
plot_url: https://codepen.io/plotly/embed/EqZBWg/?height=600&theme-id=15263&default-tab=result
4+
language: plotly_js
5+
suite: indicator
6+
order: 2
7+
sitemap: false
8+
arrangement: horizontal
9+
markdown_content: |
10+
11+
The equivalent of above "angular gauge":
12+
13+
---
14+
var data = [{domain: {x: [0.20, 1], y: [0.25, 0.92]},
15+
title: {text: "Avg order size"},
16+
type: "indicator", mode: "number+gauge", gauge: {shape: "bullet"}, value: 220}];
17+
18+
var layout = {width: 500, height: 250, shapes: [{type: "rect", x0: 0.20, x1: 1, y0: 0.25, y1: 0.92}]};
19+
20+
Plotly.newPlot(gd,data,layout);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Showing Information Above Your Chart
3+
plot_url: https://codepen.io/plotly/embed/OKpLYv/?height=600&theme-id=15263&default-tab=result
4+
language: plotly_js
5+
suite: indicator
6+
order: 3
7+
sitemap: false
8+
arrangement: horizontal
9+
markdown_content: |
10+
11+
Another interesting feature is that indicator trace sits above the other traces (even the 3d ones). This way, it can be easily used as an overlay as demonstrated below:
12+
---
13+
var data = [{domain: {y: [0, 1], x: [0.25, 0.75]}, title: {"text": "Users online"},
14+
type: "indicator", mode: "number+delta", delta: {"reference": 512, "valueformat": ".0f"},
15+
ticker: {showticker: true}, vmax: 500, value: 492}, {name: "Users online",
16+
y: [325, 324, 405, 400, 424, 404, 417, 432, 419, 394, 410, 426, 413, 419, 404, 408, 401, 377, 368, 361, 356, 359, 375, 397, 394, 418, 437, 450, 430, 442, 424, 443, 420, 418, 423, 423, 426, 440, 437, 436, 447, 460, 478, 472, 450, 456, 436, 418, 429, 412, 429, 442, 464, 447, 434, 457, 474, 480, 499, 497, 480, 502, 512, 492]}];
17+
18+
var layout = {width: 500, height: 500, xaxis: {range: [0, 62]}};
19+
20+
Plotly.newPlot(gd,data,layout);
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
name: Data Cards
3+
plot_url: https://codepen.io/plotly/embed/VopPLb/?height=600&theme-id=15263&default-tab=result
4+
language: plotly_js
5+
suite: indicator
6+
order: 4
7+
sitemap: false
8+
arrangement: horizontal
9+
markdown_content: |
10+
11+
Data card helps to display more contextual information about the data.
12+
---
13+
var data = [
14+
{domain: {x: [0, 0.5], y: [0, 0.5]}, type: "indicator",
15+
mode: "number", value: 3000},
16+
{domain: {x: [0, 0.5], y: [0.5, 1.0]}, type: "indicator",
17+
mode: "number+delta", value: 200, delta: {position: "bottom",
18+
reference: 20}},
19+
{domain: {x: [0.5, 1.0], y: [0, 0.5]}, type: "indicator",
20+
mode: "number", number: {suffix: " km/h"}, value: 40},
21+
{domain: {x: [0.5, 1.0], y: [0.5, 1.0]}, type: "indicator",
22+
mode: "number+delta", number: {prefix: "$"},
23+
value: 400, delta: {position: "top", reference: 320}}];
24+
25+
var layout = {paper_bgcolor: "lightgray", width: 600, height: 200,
26+
margin: {"t": 0, "b": 0, "l": 0, "r": 0}, shapes: [
27+
{type: "rect", x0: 0, x1: 0.5, y0: 0.5, y1: 1, line: {
28+
color: "white", width: 1 }},
29+
{type: "rect", x0: 0, x1: 0.5, y0: 0, y1: 0.5, line: {
30+
color: "white", width: 1 }},
31+
{type: "rect", x0: 0.5, x1: 1.0, y0: 0.5, y1: 1, line: {
32+
color: "white", width: 1}},
33+
{type: "rect", x0: 0.5, x1: 1.0, y0: 0, y1: 0.5,
34+
line: {color: "white", width: 1}}]}
35+
36+
Plotly.newPlot(gd,data,layout);
37+
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
name: Big Numbers
3+
plot_url: https://codepen.io/plotly/embed/PMppGM/?height=600&theme-id=15263&default-tab=result
4+
language: plotly_js
5+
suite: indicator
6+
order: 5
7+
sitemap: false
8+
arrangement: horizontal
9+
markdown_content: |
10+
11+
Sometimes one number is all you want to see in a report, such as total sales, annual revenue, etc. This example shows how to visualize these big numbers:
12+
---
13+
var data = [{domain: {x: [0, 0.33], y: [0, 0.33]},
14+
type: "indicator", mode: "number+delta", delta: {increasing: {
15+
color: "darkblue", symbol: "+"}, valueformat: ".1%", reference: 400,
16+
relative: true}, gauge: {bgcolor: "darkblue"}, value: 450},
17+
{domain: {x: [0, 0.33], y: [0.33, 0.66]}, type: "indicator", mode: "delta",
18+
delta: {reference: 400, relative: true}, value: 350},
19+
{domain: {x: [0, 0.33], y: [0.66, 1.0]}, type: "indicator", mode: "number",
20+
delta: {reference: 400, relative: true}, value: 430},
21+
{domain: {x: [0.33, 0.66], y: [0, 0.66]}, title: {"text": "Accounts"},
22+
type: "indicator", mode: "number+delta",
23+
delta: {reference: 400, relative: true, position: "top"}, value: 200},
24+
{domain: {x: [0.33, 0.66], y: [0.66, 1.0]}, value: 350, type: "indicator",
25+
mode: "number+delta", delta: {reference: 400, relative: true}},
26+
{domain: {x: [0.66, 1], y: [0, 1]}, type: "indicator", mode: "number+delta",
27+
title: {"text": "Accounts<br><span style='font-size:0.8em;color:gray'>Subtitle</span><br><span style='font-size:0.8em;color:gray'>Subsubtitle</span>"},
28+
delta: {reference: 400, relative: true}, value: 450}];
29+
30+
var layout = {width: 600, height: 400, "margin": {t: 25, r: 25, l: 25, b: 25},
31+
shapes: [{type: "rect", x0: 0, x1: 0.33, y0: 0.66, y1: 1,
32+
line: {color: "darkblue", width: 1}},
33+
{type: "rect", x0: 0, x1: 0.33, y0: 0.33, y1: 0.66,
34+
line: {color: "darkblue", width: 1}},
35+
{type: "rect", x0: 0, x1: 0.33, y0: 0, y1: 0.33,
36+
line: {color: "darkblue", width: 1}},
37+
{type: "rect", x0: 0.33, x1: 0.66, y0: 0.66, y1: 1,
38+
line: {color: "darkblue", width: 1}},
39+
{type: "rect", x0: 0.33, x1: 0.66, y0: 0, y1: 0.66,
40+
line: {color: "darkblue", width: 1}},
41+
{type: "rect", x0: 0.66, x1: 1.0, y0: 0, y1: 1,
42+
line: {color: "darkblue", width: 1}}]};
43+
44+
Plotly.newPlot(gd,data,layout);
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: Big Numbers
3+
plot_url: https://codepen.io/plotly/embed/ymMWRR/?height=600&theme-id=15263&default-tab=result
4+
language: plotly_js
5+
suite: indicator
6+
order: 6
7+
sitemap: false
8+
arrangement: horizontal
9+
markdown_content: |
10+
11+
We can also show a combination of both shapes (angular, bullet), and different modes (guage, delta, and value) in one chart.
12+
---
13+
var data = [
14+
{type: "indicator", value: 200, delta: {reference: 160},
15+
gauge: {axis: {visible: false, range: [0, 200]}}, domain: {row: 0, column: 0}},
16+
{type: "indicator", value: 120, gauge: {shape: "bullet", axis: {visible: false, range: [-200, 200]}},
17+
domain: {x: [0.05, 0.5], y: [0.15, 0.35]}},
18+
{type: "indicator", mode: "number+delta", value: 300, domain: {row: 0, column: 1}},
19+
{type: "indicator", mode: "delta", value: 40, domain: {row: 1, column: 1}}];
20+
21+
var layout = {width: 600, height: 400, margin: {"t": 25, "b": 25, "l": 25, "r": 25},
22+
grid: {rows: 2, columns: 2, pattern: "independent"}, template: {
23+
data: {indicator: [{title: {text: "Speed"}, mode: "number+delta+gauge",
24+
delta: {reference: 90}}]}}};
25+
26+
Plotly.newPlot(gd,data,layout);

0 commit comments

Comments
 (0)