npm i vue-trend-chart
import TrendChart from "vue-trend-chart";
app.use(TrendChart);
Example:
<TrendChart
:datasets="[
{
data: [10, 50, 20, 100, 40, 60, 80],
smooth: true,
fill: true
}
]"
:grid="{
verticalLines: true,
horizontalLines: true
}"
:labels="{
xLabels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
yLabels: 5
}"
:min="0">
</TrendChart>
Required
Type: Array
Array of objects with properties for each dataset.
Type: Object
Type: Object
Type: Number
Default: min value from datasets
Type: Number
Default: max value from datasets
Type: String
Default: "5"
If you set a large stroke-width on your lines, you may notice that it gets "cropped" towards the edges. It's similar to "padding" CSS property but without specifying units.
Examples:
"5"
apply to all four sides
"5 10"
vertical | horizontal
"5 15 10"
top | horizontal | bottom
"5 10 15 20"
top | right | bottom | left
Type: Boolean
Default: false
Allows to set onmousemove interaction. Set to true
to enable.
Callback function for onmouseover interaction.
Receives an object {index: Number, data: Array}
parameter based on current active line.
This function has no effect if interactive
isn't set to true
.
Chart line (curve) properties
Type: Number|Object
Example: [70, 100, 400, 180, 100]
or [{ value: 70 }, { value: 100 }, { value: 400 }, { value: 180 }, { value: 100 }]
For object type you can also add other properties to use them in interactive
mode.
Type: String
Allows to append custom class to chart line for future styling.
Type: Boolean
Default: false
Allows the peaks to be 'rounded' out.
Type: Boolean
Default: true
If false
, the line is not drawn for this dataset.
Type: Boolean
Default: false
Allows to fill the area under the line. Set to true
to enable.
Type: Boolean
Default: false
Allows to show points. Set to true
to enable.
Type: Boolean
Default: false
Allows to show vertical gridlines. Set to true
to enable.
Type: Number
Default: number of xLabels
Allows to set custom number of vertical gridlines.
This prop has no effect if verticalLines
isn't set to true
.
Type: Boolean
Default: false
Allows to show horizontal gridlines. Set to true
to enable.
Type: Number
Default: number of yLabels
Allows to set custom number of horizontal gridlines.
This prop has no effect if horizontalLines
isn't set to true
.
Type: Array
X axis labels.
Example: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
Type: Number
Number of Y axis labels. Labels text is based on data values.
Type: Function
Allows to format Y axis labels text.
Example: val => "$" + Math.round(val * 100) / 100
.
This function has no effect if yLabels
prop has no value.
Just use CSS to style your charts.
Here is an example of a tree structure with available class names:
<svg class="vtc">
<g class="grid">
<g class="vertical">
<line class="line"></line>
...
</g>
<g class="horizontal">
<line class="line"></line>
...
</g>
</g>
<g class="labels">
<g class="x-labels">
<g class="label">
<text></text>
</g>
...
</g>
<g class="y-labels">
<g class="label">
<text></text>
</g>
...
</g>
</g>
<g class="curve">
<path class="fill"></path>
<path class="stroke"></path>
<g class="points">
<circle class="point"></circle>
...
</g>
</g>
...
<line class="active-line"></line>
</svg>
npm install
npm run dev
Pull requests are welcome!
MIT