Unlock the Power of Sketch-Like Charts in Your Vue.js Applications
What Are Charts, Anyway?
Charts are visual representations of data that make it easier to understand and distinguish patterns. While most users are familiar with concise and formalized charts, some prefer a more hand-drawn or sketched look. That’s where roughViz comes in – a JavaScript library built on top of D3.js and Rough.js that helps create charts with a unique, sketched appearance.
Getting Started with roughViz and Vue.js
To follow along, you’ll need:
- Basic familiarity with Vue.js
- A local development environment for Node.js and npm
- A text editor like Visual Studio Code or Atom
First, install vue-cli and create a new Vue application. Once set up, run npm run serve
to ensure everything is working correctly.
Introducing vue-roughviz
vue-roughviz
is a Vue.js wrapper for roughViz.js, making it easy to integrate sketch-like charts into your Vue.js projects. To include vue-roughviz
in your project, run the following command:
vue add vue-roughviz
Exploring vue-roughviz Components
vue-roughviz
provides components for various chart styles, including:
roughBar
: roughViz bar-chart componentroughBarH
: roughViz horizontal bar-chart componentroughDonut
: roughViz donut chart componentroughPie
: roughViz pie chartroughLine
: roughViz line chart componentroughScatter
: roughViz scattered chart componentroughStackedBar
: roughViz stacked bar chart component
Using vue-roughviz in Your Project
Open your project folder in your preferred text editor and replace the contents of src/App.vue
with the following code:
import { roughBar } from 'vue-roughviz';
export default {
components: { roughBar }
}
Configuring vue-roughviz Props
The only required prop is data
, which can be a string or an object containing labels
and values
keys. Other useful props include:
title
: chart titleroughness
: roughness level of chartstroke
: color of the bar strokestroke-width
: size of bar strokefill-weight
: weight of inner path colorfill-style
: bar-fill style (dashed, solid, zigzag-line, cross-hatch, hachure, zigzag)
Loading Data from an External API
Let’s display the price history of bitcoin for the past 10 days using the Coingecko API. Replace src/App.vue
with the code below:
async mounted() {
const response = await fetch('https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=usd&days=10');
const data = await response.json();
const chartData = data.prices.map(([date, price]) => ({ label: date, value: price }));
this.chartData = chartData;
}
What’s Next?
This tutorial has shown you how to create a Vue app using vue-cli, display sketch-like charts using vue-roughviz
, and load data from an external API. If you’re interested in learning more about roughViz or contributing to the project, visit the roughViz or vue-roughviz
projects on GitHub.