Vs
Vue Visualisation Package using d3.js and leaflet. Package used in Ubudu. See also:
LayoutGrid : Creating a powerful dashboard using Vs and vue-grid-layout
Installation
npm i -S d3-vs
Usage
import Vs from 'd3-vs';
// install globally all components
Vue.use(Vs);
// import only the components that you need and register it manually
import {
// Flow transition
d3SankeyCircular,
// Time Serie
d3Timelion,
d3Timeline,
// Basic
d3Pie,
d3Line,
d3Metric,
d3MultiLine,
d3HorizontalBar,
d3VerticalBar,
d3Area,
// Functional
d3Tracker,
d3Slider,
d3ProgressArc,
// Layout
d3Sunburst,
d3Tree,
d3Pack,
d3Cluster,
d3ICicleVertical,
d3ICicleHorizontal,
// Leaflet
d3LChoropleth,
d3LHeat
} from 'd3-vs';
Basic
###d3Metric
This component is for showing simple scientific data. It accepts the type Number
as data.
template
<d3-metric
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-metric>
options
key | description | type | default |
---|---|---|---|
axisXLabel |
label of horizontally which will be put above the data |
string OR null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
400 |
axisLabelFontOpacity |
label font opacity |
number ([0, 1]) |
0.5 |
metricLabelColor |
metric color |
string (rgb, hex, rgba, hsl...) |
black |
metricLabelFontSize |
metric font size |
number |
120 |
metricLabelFontWeight |
metric font weight |
number |
900 |
metricLabelFontOpacity |
metric font opacity |
number ([0, 1]) |
0.5 |
metricTitle |
metric tooltip |
function |
d => d |
metricPrecision |
metric precision |
number |
2 |
###d3Circle
This component is for showing a simple percentage data. It accepts the type Number
as data. The data must be in the range [0, 1]
.
template
<d3-circle
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-circle>
options
key | description | type | default |
---|---|---|---|
innerRadiusRatio |
innerRadius / outerRadius |
number |
0.8 |
circleBackground |
circle background color |
string (rgb, hex, rgba, hsl...) |
rgb(230, 237, 244) |
circleForeground |
circle foreground color |
string (rgb, hex, rgba, hsl...) |
rgb(0, 181, 241) |
labelColor |
label color |
string (rgb, hex, rgba, hsl...) |
rgb(0, 181, 241) |
labelFontSize |
label font size |
number |
50 |
labelFontWeight |
label font weight |
number |
900 |
labelFontOpacity |
label font opacity |
number |
0.5 |
precision |
precision of data |
number |
2 |
animationDuration |
duration of animation |
number |
1000 |
delay |
delay of animation (milliseconds) |
number |
50 |
###d3Pie
This component can be a pie chart or a donut chart. It takes an array of elements like {key : 'String|Date|Number', value : 'Number'}
. key
will be used
in tooltip, value
will be used to calculate the angle needed.
template
<d3-pie
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-pie>
options
key | description | type | default |
---|---|---|---|
innerRadius |
inner radius |
number |
50 |
cornerRadius |
corner radius |
number |
0 |
padAngle |
pad angle (percentage) |
number |
0.01 |
arcTitle |
tooltip |
function |
d => d.data.key + '<br>' + d.data.value |
arcLabel |
label will be shown in arcs |
string OR null |
null |
axisXLabel |
label of axis x |
string OR null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
abel font weight |
number |
400 |
axisLabelFontOpacity |
label font opacity |
number ([0, 1]) |
0.5 |
arcLabelFontSize |
label font size of arcs |
number |
9 |
arcLabelFontWeight |
abel font weight of arcs |
number |
400 |
arcLabelFontOpacity |
label font opacity of arcs |
number ([0, 1]) |
0.5 |
animationDuration |
duration of animation |
number |
1000 |
delay |
delay of animation (milliseconds) |
number |
50 |
defaultColor |
color will be used when there is only one item in array |
string (rgb, hex, rgba, hsl...) |
rgb(175, 240, 91) |
###d3VerticalBar
This component is for showing scientific data in vertical bar chart. It takes an array of elements like {key : 'String|Date|Number', value : 'Number'}
, key
will be
used in tooltip, value will be used to calculate the height needed. By default when every key
is of type date, brush will be enabled. You can chose a new range
by using the brush or by clicking a bar if options.axisXTimeInterval
has been settled.
template
<d3-vertical-bar
:data="data"
:options="options"
:margin="margin"
width="100%"
@range-updated="(dateTimeStart, dateTimeEnd) => fetchDataWithCurrentInterval(dateTimeStart, dateTimeEnd)"
height="400px">
</d3-vertical-bar>
options
key | description | type | default |
---|---|---|---|
fill |
bar internal color |
string (rgb, hex, hsl...) |
#6eadc1 |
stroke |
bar edge color |
string (rgb, hex, hsl...) |
#6eadc1 |
fillOpacity |
bar internal color opacity |
number |
0.6 |
strokeOpacity |
bar edge color opacity |
number |
1 |
barTitle |
tooltip |
function |
d => d.value |
tickSize |
tick height/width of axis |
number |
10 |
tickPadding |
tick padding |
number |
8 |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
axisXLabel |
label of axis x |
string or null |
null |
axisYLabel |
label of axis y |
string or null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
400 |
axisLabelFontOpacity |
label font opacity |
number |
0.5 |
axisXLaneHeight |
lane height of axis x |
number |
60 |
axisYLaneWidth |
lane width of axis y |
number |
60 |
axisXTimeInterval |
used when data is of type date_histogram, it will be used to decide the date format of axis x |
number OR null |
null |
isAxisPathShow |
if the axis path will be shown |
boolean |
true |
animationDuration |
duration of animation |
number |
1000 |
delay |
delay of animation (milliseconds) |
number |
50 |
axisYTickFormat |
d3-format support |
string |
.2s |
negative |
the axis y should start at 0 or not |
boolean |
false |
nice |
the tick number of axis should be rounded or not |
false |
events
name | description | arguments |
---|---|---|
range-updated |
new range has been chosen by using the brush or by clicking a bar |
(dateTimeStart, dateTimeEnd) |
###d3HorizontalBar
This component is for showing scientific data in horizontal bar chart. It takes an array of elements like {key : 'String|Date|Number', value : 'Number'}
, key
will be
used in tooltip, value will be used to calculate the width needed. By default when every key
is of type date, brush will be enabled. You can chose a new range
by using the brush or by clicking a bar if options.axisYTimeInterval
has been settled.
template
<d3-horizontal-bar
:data="data"
:options="options"
:margin="margin"
@range-updated="(dateTimeStart, dateTimeEnd) => fetchDataWithCurrentInterval(dateTimeStart, dateTimeEnd)"
width="100%"
height="400px">
</d3-horizontal-bar>
options
key | description | type | default |
---|---|---|---|
fill |
bar internal color |
string (rgb, hex, hsl...) |
#6eadc1 |
stroke |
bar edge color |
string (rgb, hex, hsl...) |
#6eadc1 |
fillOpacity |
bar internal color opacity |
number |
0.6 |
strokeOpacity |
bar edge color opacity |
number |
1 |
barTitle |
tooltip |
function |
d => d.value |
tickSize |
tick height/width of axis |
number |
10 |
tickPadding |
tick padding |
number |
8 |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
axisXLabel |
label of axis x |
string or null |
null |
axisYLabel |
label of axis y |
string or null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
400 |
axisLabelFontOpacity |
label font opacity |
number |
0.5 |
axisXLaneHeight |
lane height of axis x |
number |
30 |
axisYLaneWidth |
lane width of axis y |
number |
120 |
axisYTimeInterval |
used when data is of type date_histogram, it will be used to decide the date format of axis y |
number OR null |
null |
isAxisPathShow |
if the axis path will be shown |
boolean |
true |
animationDuration |
duration of animation |
number |
1000 |
delay |
delay of animation (milliseconds) |
number |
50 |
axisXTickFormat |
d3-format support |
string |
.2s |
negative |
the axis y should start at 0 or not |
boolean |
false |
nice |
the tick number of axis should be rounded or not |
false |
events
name | description | arguments |
---|---|---|
range-updated |
new range has been chosen by using the brush or by clicking a bar |
(dateTimeStart, dateTimeEnd) |
###d3Line
This component is for showing scientific data in line chart. It takes an array of elements like {key : 'String|Date|Number', value : 'Number'}
, key
will be
used in tooltip, value will be used to calculate the width needed. By default when every key
is of type date, brush will be enabled. You can chose a new range
by using the brush.
template
<d3-line
:data="data"
:options="options"
:margin="margin"
@range-updated="(dateTimeStart, dateTimeEnd) => fetchDataWithCurrentInterval(dateTimeStart, dateTimeEnd)"
width="100%"
height="400px">
</d3-line>
options
key | description | type | default |
---|---|---|---|
stroke |
line edge color |
string (rgb, hex, rgba, hsl...) |
rgb(188, 82, 188) |
strokeWidth |
line edge width |
number |
2 |
axisXLaneHeight |
lane height of the axis x |
number |
60 |
axisYLaneWidth |
lane width of the axis y |
number |
35 |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number |
1 |
tickSize |
tick height/width of axis |
number |
10 |
tickPadding |
tick padding |
number |
8 |
circleRadius |
emphasis circle radius |
number |
5 |
circleColor |
emphasis circle color |
number |
rgb(188, 82, 188) |
circleTitle |
emphasis circle tooltip |
function |
d => d.value |
curve |
curve algorithm |
string |
curveMonotoneX |
axisXLabel |
label of axis x |
string or null |
null |
axisYLabel |
label of axis y |
string or null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
400 |
axisLabelFontOpacity |
label font opacity |
number |
0.5 |
axisXTimeInterval |
used when data is of type date_histogram, it will be used to decide the date format of axis x |
number OR null |
null |
axisXTickFormat |
d3-format support |
string |
.2s |
negative |
the axis y should start at 0 or not |
boolean |
false |
nice |
the tick number of axis should be rounded or not |
false |
events
name | description | arguments |
---|---|---|
range-updated |
new range has been chosen by using the brush| (dateTimeStart, dateTimeEnd)` |
###d3Area
This components is for show big date_histogram data, It takes an array of elements like {key : 'Date', value : 'Number'}
.
template
<d3-area
:data="data"
:options="options"
:margin="margin"
@range-updated="(dateTimeStart, dateTimeEnd) => fetchDataWithCurrentInterval(dateTimeStart, dateTimeEnd)"
width="100%"
height="400px">
</d3-area>
options
key | description | type | default |
---|---|---|---|
fill |
area path internal color |
string (rgb, hex, hsl...) |
#6eadc1 |
fillOpacity |
area path internal color opacity |
number |
0.6 |
stroke |
area path edge color |
string (rgb, hex, rgba, hsl...) |
rgb(188, 82, 188) |
strokeOpacity |
area path edge color opacity |
number |
1 |
areaTitle |
tooltip |
function |
d => d.value |
axisXLaneHeight |
lane height of the axis x |
number |
60 |
axisYLaneWidth |
lane width of the axis y |
number |
60 |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number |
1 |
tickSize |
tick height/width of axis |
number |
10 |
tickPadding |
tick padding |
number |
8 |
curve |
curve algorithm |
string |
curveLinear |
axisXLabel |
label of axis x |
string or null |
null |
axisYLabel |
label of axis y |
string or null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
400 |
axisLabelFontOpacity |
label font opacity |
number |
0.5 |
axisXTickFormat |
d3-format support |
string |
.2s |
negative |
the axis y should start at 0 or not |
boolean |
false |
nice |
the tick number of axis should be rounded or not |
false |
|
isAxisPathShow |
if the axis path will be shown |
boolean |
true |
###d3MultiLine
This component is for showing multiple lines together. It takes an array of elements like {group: 'string', key : 'String|Date|Number', value: 'Number'}
.
template
<d3-multi-line
:data="data"
:options="options"
:margin="margin"
@range-updated="(dateTimeStart, dateTimeEnd) => fetchDataWithCurrentInterval(dateTimeStart, dateTimeEnd)"
width="100%"
height="400px">
</d3-multi-line>
options
key | description | type | default |
---|---|---|---|
strokeWidth |
line edge width |
number |
2 |
axisXLaneHeight |
lane height of the axis x |
number |
60 |
axisYLaneWidth |
lane width of the axis y |
number |
35 |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number |
1 |
tickSize |
tick height/width of axis |
number |
10 |
tickPadding |
tick padding |
number |
8 |
circleRadius |
emphasis circle radius |
number |
5 |
circleTitle |
emphasis circle tooltip |
function |
d => d.value |
crossWidth |
legend cross line edge width |
number |
2 |
crossColor |
legend cross line color |
string (rgb, hex, rgba, hsl...) |
white |
curve |
curve algorithm |
string |
curveMonotoneX |
axisXLabel |
label of axis x |
string or null |
null |
axisYLabel |
label of axis y |
string or null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
400 |
axisLabelFontOpacity |
label font opacity |
number |
0.5 |
axisXTimeInterval |
used when data is of type date_histogram, it will be used to decide the date format of axis x |
number OR null |
null |
axisXTickFormat |
d3-format support |
string |
.2s |
negative |
the axis y should start at 0 or not |
boolean |
false |
nice |
the tick number of axis should be rounded or not |
false |
|
isAxisPathShow |
if the axis path will be shown |
boolean |
true |
axisXGroupLabelLaneHeight |
group lane height |
number |
35 |
axisXGroupLabelWidth |
group legend width |
number |
15 |
axisXGroupLabelFillColorOpacity |
group legend internal color opacity |
number |
1 |
axisXGroupLabelBorderColorOpacity |
group legend edge color opacity |
number |
0.6 |
axisXGroupLabelGap |
group legend gap |
number |
10 |
dashedGroups |
dash groups |
Array<string> |
[] |
strokeDashArray |
dash array |
number |
5 |
Flow Of Transitions
###d3SankeyCircular
This component is for showing the flow of transitions between zones. It takes an array nodes
to represent all the zones, and it takes an array of elements
like:
{
source: `String`,
target: `String`,
value: 'Number'
}
template
<d3-sankey-circular
:nodes="nodes"
:links="links"
:options="options"
:nodeTitle="nodeTitle"
:linkTitle="linkTitle"
@max-period-updated="(period) => yourMethod(period)"
width="100%"
height="400px">
</d3-sankey-circular>
nodeTitle
Tooltip of zone. Default to d => ${d.name}<br>${d.value}
.
linkTitle
Tooltip of link. Default to d => ${d.source.name} → ${d.target.name}<br>${d.value}
.
options
key | description | type | default |
---|---|---|---|
nodeWidth |
node width |
number |
20 |
nodeTextFontSize |
node text font size |
number |
12 |
nodeTextFontWeight |
node text font weight |
number |
600 |
nodeTextFontOpacity |
node text font opacity |
number |
1 |
circularLinkGap |
circular link gap |
number |
4 |
circularLinkColor |
circularLinkColor |
string (rgb, hex, rgba, hsl...) |
red |
linkColor |
link color |
string (rgb, hex, rgba, hsl...) |
black |
gapLength |
gap length |
number |
150 |
arrowLength |
arrow length |
number |
10 |
arrowHeadSize |
arrow head size |
number |
4 |
axisXSelectBoxLabel |
select box label |
string |
Max interval among the same trajectory |
axisXSelectBoxLabelFontSize |
select box label font size |
number |
12 |
axisXSelectBoxLabelFontWeight |
select box label font weight |
number |
400 |
axisXSelectBoxLabelFontOpacity |
select box label font opacity |
number |
0.5 |
axisXLabel |
label of axis x |
string OR null |
null |
axisXLabelFontSize |
label font size of axis x |
number |
12 |
axisXLabelFontWeight |
label font weight of axis x |
number |
400 |
axisXLabelFontOpacity |
label font opacity |
number |
1 |
Time Series
###d3Timelion
This component is similar to kibana timelion
with a interval select box. It accepts an array of elements like { key : 'Date', value: 'Number'}
.
template
<d3-timelion
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px"
@range-updated="(dateTimeStart, dateTimeEnd) => fetchDataWithCurrentInterval(dateTimeStart, dateTimeEnd)"
@interval-updated="interval => fetchDataWithInterval(interval)">
</d3-timelion>
options
key | description | type | default |
---|---|---|---|
fill |
bar internal color |
string (rgb, hex, hsl...) |
#6eadc1 |
stroke |
bar edge color |
string (rgb, hex, hsl...) |
#6eadc1 |
fillOpacity |
bar internal color opacity |
number |
0.6 |
strokeOpacity |
bar edge color opacity |
number |
1 |
barTitle |
tooltip |
function |
d => d.value |
tickSize |
tick height/width of axis |
number |
10 |
tickPadding |
tick padding |
number |
8 |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
axisXLabel |
label of axis x |
string or null |
null |
axisYLabel |
label of axis y |
string or null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
400 |
axisLabelFontOpacity |
label font opacity |
number |
0.5 |
axisXLaneHeight |
lane height of axis x |
number |
60 |
axisYLaneWidth |
lane width of axis y |
number |
60 |
axisXTimeInterval |
used when data is of type date_histogram, it will be used to decide the date format of axis x |
number OR null |
null |
isAxisPathShow |
if the axis path will be shown |
boolean |
true |
animationDuration |
duration of animation |
number |
1000 |
delay |
delay of animation (milliseconds) |
number |
50 |
axisYTickFormat |
d3-format support |
string |
.2s |
negative |
the axis y should start at 0 or not |
boolean |
false |
nice |
the tick number of axis should be rounded or not |
false |
|
timeRangeLabelFontSize |
time range label font size |
number |
12 |
timeRangeLabelFontWeight |
time range label font weight |
number |
400 |
timeRangeLabelFontOpacity |
time range label font opacity |
number |
0.5 |
events
event | description | arguments |
---|---|---|
range-updated |
user has chosen a new time range by using the brush |
(dateTimeStart, dateTimeEnd) |
interval-updated |
user has changed the time interval by using the select box |
(interval) |
###d3Timeline
This component is for showing time entries. We have two type entries in d3Timeline
, they are Point
and Interval
. It takes an array of entries as data.
To specify an entry Point
:
{
at: 'Date',
// tooltip
title: 'String',
group: 'String',
// internally we have 4 className, they are 'entry--point--default', 'entry--point--success', 'entry--point--warn', 'entry--point--info'
// you can also specify your own class and add it to SPA. The class shouldn't be in scoped style
className: 'String',
// it supports 7 symbols, they are 'symbolCircle', 'symbolCross', 'symbolDiamond', 'symbolSquare', 'symbolStar', 'symbolTriangle', 'symbolWye'
symbol: 'String'
}
To specify an entry 'Interval':
{
from : 'Date',
to: 'Date',
// tooltip
title: 'String',
label: 'String',
group: 'String',
// internally we have 4 className, they are 'entry--point--default', 'entry--point--success', 'entry--point--warn', 'entry--point--info'
// you can also specify your own class and add it to SPA. The class shouldn't be in scoped style
className: 'String'
}
template
<d3-timeline
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-timeline>
options
key | description | type | default |
---|---|---|---|
intervalCornerRadius |
corner radius of Interval entry |
number |
4 |
symbolSize |
symbol size of Point entry |
number |
400 |
groupLabelFontSize |
group label font size |
number |
12 |
groupLabelFontWeight |
group label font weight |
number |
400 |
groupLabelFontOpacity |
group label font opacity |
number |
1 |
groupLaneWidth |
group lane width |
number |
200 |
tickSize |
tick size of axis |
number |
10 |
tickPadding |
tick size padding |
number |
8 |
axisXLaneHeight |
lane height of axis x |
number |
40 |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
axisXLabel |
label of axis x |
string or null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
600 |
axisLabelFontOpacity |
label font opacity |
number |
0.5 |
backgroundColor |
background color |
string (rgb, hex, rgba, hsl...) |
rgba(255, 255, 255, 0.125) |
borderRadius |
border radius |
number |
0 |
borderWidth |
border width |
number |
2 |
borderColor |
border color |
string (rgb, hex, rgba, hsl...) |
rgba(0, 0, 0, .125) |
boundingLineWidth |
bounding line width |
number |
2 |
boundingLineColor |
bounding line color |
string (rgb, hex, rgba, hesl...) |
rgba(0, 0, 0, .125) |
currentTimeLineWidth |
current time line width |
number |
2 |
currentTimeLineColor |
current time line color |
string (rgb, hex, rgba, hsl...) |
rgba(255, 56, 96, 1) |
Functional
###d3Tracker
This component is like d3Timeline
. The difference is that d3Tracker
has no support for group and we can hit the space
key in keyboard to start
playing. It will also trigger an event to tell us the dateTime of the cursor and the entries it is now passing.
template
<d3-tracker
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px"
@reference-updated="(dateTimeRange, entries) => yourMethod(dateTimeRange, entries)">
</d3-tracker>
options
key | description | type | default |
---|---|---|---|
intervalCornerRadius |
corner radius of Interval entry |
number |
4 |
symbolSize |
symbol size of Point entry |
number |
400 |
tickSize |
tick size of axis |
number |
10 |
tickPadding |
tick size padding |
number |
8 |
axisXLaneHeight |
lane height of axis x |
number |
40 |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
axisXLabel |
label of axis x |
string or null |
null |
axisLabelFontSize |
label font size |
number |
12 |
axisLabelFontWeight |
label font weight |
number |
600 |
axisLabelFontOpacity |
label font opacity |
number |
0.5 |
backgroundColor |
background color |
string (rgb, hex, rgba, hsl...) |
rgba(255, 255, 255, 0.125) |
borderRadius |
border radius |
number |
0 |
borderWidth |
border width |
number |
2 |
borderColor |
border color |
string (rgb, hex, rgba, hsl...) |
rgba(0, 0, 0, .125) |
boundingLineWidth |
bounding line width |
number |
2 |
boundingLineColor |
bounding line color |
string (rgb, hex, rgba, hesl...) |
rgba(0, 0, 0, .125) |
referenceLineWidth |
current time line width |
number |
4 |
referenceLineColor |
current time line color |
string (rgb, hex, rgba, hsl...) |
rgba(255, 56, 96, 1) |
overlayWidth |
cursor overlay rectangle width |
number |
30 |
playDuration |
play should be done in the duration |
10000 |
|
playJump |
play jump should be enabled or not |
boolean |
false |
events
event | description | arguments |
---|---|---|
reference-updated |
reference cursor move |
(dateTimeRange, entries) |
###d3Slider
This component is make it more simple to choose a value in a range. This range can be a range of color, date or number. It takes a min
and max
as data.
template
<d3-slider
v-model="data"
:min="min"
:max="max"
:margin="margin"
:options="options"
width="100%"
height="100%">
</d3-slider>
options
key | description | type | default |
---|---|---|---|
trackStroke |
track edge color |
string (rgb, hex, rgba, hsl...) |
#000 |
trackStrokeWidth |
track edge width |
number |
10 |
trackStrokeOpacity |
track edge opacity |
number |
0.3 |
trackRounded |
track round or not |
boolean |
true |
trackInsetStroke |
inset track edge color |
string (rgb, hex, rgba, hsl...) |
#ddd |
trackInsetStrokeOpacity |
inset track edge color opacity |
number |
1 |
trackInsetStrokeWidth |
inset track edge width |
number |
8 |
circleFill |
circle handler internal color |
string (rgb, hex, rgba, hsl...) |
#fff |
circleStroke |
circle handler edge color |
string (rgb, hex, rgba, hsl...) |
#000 |
circleStrokeOpacity |
circle handler edge color opacity |
number |
0.5 |
circleStrokeWidth |
circle handler edge width |
number |
1.25 |
isAxisShow |
if axis will be shown |
boolean |
false |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
Layout
###d3Tree
This component is for showing tree
layout which is recursive. It takes an object of Hierarchical layouts
as data.
hierarchical layout object
{
"name": "A1",
"children": [
{
"name": "B1",
"children": [
{
"name": "C1",
"value": 100
},
{
"name": "C2",
"value": 300
},
{
"name": "C3",
"value": 200
}
]
},
{
"name": "B2",
"value": 200
}
]
}
template
<d3-tree
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-tree>
options
key | description | type | default |
---|---|---|---|
nodeTitle |
tooltip |
function |
d => d.data.key + '<br>' + 'd.data.value' |
nodeFill |
tree node internal color |
string (rgb, hex, rgba, hsl...) |
#6eadc1 |
nodeStroke |
tree node edge color |
string (rgb, hex, rgba, hsl...) |
#6eadc1 |
nodeFillOpacity |
tree node internal color opacity |
number |
0.6 |
nodeStrokeOpacity |
tree node edge color opacity |
number |
1 |
linkStroke |
link edge color |
string (rgb, hex, rgba, hsl...) |
#6eadc1 |
linkStrokeWidth |
link edge width |
number |
1 |
linkStrokeOpacity |
link edge color opacity |
number |
1 |
nodeRadius |
tree node circle radius |
number |
10 |
axisXLabel |
label of axis x |
string or null |
null |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
###d3Cluster
This component is like d3-tree
but with all leaf nodes are at the same height. It takes an object of Hierarchical layouts
as data.
hierarchical layout object
{
"name": "A1",
"children": [
{
"name": "B1",
"children": [
{
"name": "C1",
"value": 100
},
{
"name": "C2",
"value": 300
},
{
"name": "C3",
"value": 200
}
]
},
{
"name": "B2",
"value": 200
}
]
}
template
<d3-cluster
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-cluster>
options
key | description | type | default |
---|---|---|---|
nodeTitle |
tooltip |
function |
d => d.data.key + '<br>' + 'd.data.value' |
nodeFill |
tree node internal color |
string (rgb, hex, rgba, hsl...) |
#6eadc1 |
nodeStroke |
tree node edge color |
string (rgb, hex, rgba, hsl...) |
#6eadc1 |
nodeFillOpacity |
tree node internal color opacity |
number |
0.6 |
nodeStrokeOpacity |
tree node edge color opacity |
number |
1 |
linkStroke |
link edge color |
string (rgb, hex, rgba, hsl...) |
#6eadc1 |
linkStrokeWidth |
link edge width |
number |
1 |
linkStrokeOpacity |
link edge color opacity |
number |
1 |
nodeRadius |
tree node circle radius |
number |
10 |
axisXLabel |
label of axis x |
string or null |
null |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
###d3ICicleHorizontal
This component is for show icicle horizontal
layout which is recursive. It takes an object of Hierarchical layouts
as data.
template
<d3-icicle-horizontal
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-icicle-horizontal>
options
key | description | type | default |
---|---|---|---|
rectTitle |
tooltip |
function |
d => d.data.value |
padding |
partition padding |
number |
0 |
fillOpacity |
partition internal color opacity |
number |
0.6 |
strokeOpacity |
partition edge color opacity |
number |
1 |
axisXLabel |
label of axis x |
string or null |
null |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
###d3ICicleVertical
This component is for show icicle vertical
layout which is recursive. It takes an object of Hierarchical layouts
as data.
template
<d3-icicle-vertical
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-icicle-vertical>
options
key | description | type | default |
---|---|---|---|
rectTitle |
tooltip |
function |
d => d.data.value |
padding |
partition padding |
number |
0 |
fillOpacity |
partition internal color opacity |
number |
0.6 |
strokeOpacity |
partition edge color opacity |
number |
1 |
axisXLabel |
label of axis x |
string or null |
null |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
###d3Sunburst
This component is for showing sunburst
layout. It takes an object of Hierarchical layouts
as data.
hierarchical layout object
{
"name": "A1",
"children": [
{
"name": "B1",
"children": [
{
"name": "C1",
"value": 100
},
{
"name": "C2",
"value": 300
},
{
"name": "C3",
"value": 200
}
]
},
{
"name": "B2",
"value": 200
}
]
}
template
<d3-sunburst
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-sunburst>
options
key | description | type | default |
---|---|---|---|
arcTitle |
tooltip |
function |
d => d.data.value |
padding |
partition padding |
number |
0 |
fillOpacity |
partition internal color opacity |
number |
0.6 |
strokeOpacity |
partition edge color opacity |
number |
1 |
axisXLabel |
label of axis x |
string or null |
null |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
###d3Pack
This component is for showing pack
layout. It takes an object of Hierarchical layouts
as data.
hierarchical layout object
{
"name": "A1",
"children": [
{
"name": "B1",
"children": [
{
"name": "C1",
"value": 100
},
{
"name": "C2",
"value": 300
},
{
"name": "C3",
"value": 200
}
]
},
{
"name": "B2",
"value": 200
}
]
}
template
<d3-pack
:data="data"
:options="options"
:margin="margin"
width="100%"
height="400px">
</d3-pack>
options
key | description | type | default |
---|---|---|---|
circleTitle |
tooltip |
function |
d => d.data.key + '<br>' + d.data.value |
circleFillOpacity |
partition circle internal color opacity |
number |
0.6 |
circleStrokeOpacity |
partition circle edge color opacity |
number |
1 |
axisXLabel |
label of axis x |
string or null |
null |
axisFontSize |
axis text font size |
number |
12 |
axisFontWeight |
axis text font weight |
number |
400 |
axisFontOpacity |
axis text font opacity |
number ([0, 1]) |
0.5 |
template
<d3-l-choropleth
:data="data"
:options="options"
:indoorMaps="indoorMaps"
width="100%"
height="400px">
</d3-l-choropleth>
<d3-l-heat
:data="data"
:options="options"
:indoorMaps="indoorMaps"
width="100%"
height="400px">
</d3-l-heat>
Screenshots
ToDo
d3ColorPicker
d3Gantt
d3Gauge
d3Goal
d3HeatMap
d3RadialBar
d3RadialSector
d3RadialLine
d3ScatterPlot
d3Table
d3WordCloud
d3Markdown
d3JsonViewer
d3LReplay