使用 Vue.js 和 Chart.js 创建令人惊叹的图表

使用 Vue.js 和 Chart.js 创建令人惊叹的图表

原文:https://medium.com/hackernoon/creating-stunning-charts-with-vue-js-and-chart-js-28af584adc0a

深入 chart.js 的选项来创建令人惊叹的图表。

交互式图表可以提供一种很酷的方式来可视化您的数据。 然而,大多数开箱即用的解决方案都没有它们应有的漂亮,都有默认选项。

我将向你展示如何定制你的 chart.js 选项来制作一些很酷的图表!

⚡快速启动

我们将使用什么:

我们使用 vue-cli 创建一个基本结构。所以我希望你已经安装好了。我们使用 vue-chart.js 作为 chart.js 的包装器。

vue init webpack awesome-charts

然后,我们进入项目文件夹,安装我们的依赖项。

cd awesome-charts && yarn install

我们加上 vue-chartjs :

yarn add vue-chartjs chart.js

我们的第一张图表

那么,让我们创建第一个折线图。

touch src/components/LineChart.js && subl .

现在我们需要从 vue-chartjs 导入线条基础图,并创建我们的组件。

mount() 函数中,我们需要用我们的数据和选项调用 renderChart() 方法。

LineChart.js

我们传入一个基本的 chart.js 数据对象和一些样本数据,在 option 参数中,我们传入 responsive: true。所以这张图表将会印在我们的外箱上。

☝我们可以调用方法 renderChart() 因为我们扩展了 BaseChart,定义了这个方法和一些道具

安装并测试它

现在,我们从 App.vue 中删除 Hello.vue 组件,并导入图表。

App.vue

在我们的终端中运行开发脚本之后,我们应该会看到我们的图表。

yarn run dev 

💄让我美丽

好了,现在是美化的时候了💅。chart.js 里有几个很酷的小技巧,我们可以传递一个颜色十六进制值给background color;但是我们也可以传递一个 rgba()值。所以我们可以使我们的颜色透明。而且由于 chart.js 是用 html canvas 来绘制的,我们可以利用createlanegradient()

这就是乐趣的开始。🎢但是要使用它,我们需要画布对象。但是这没什么大不了的,因为 vue-chartjs 有一个对它的引用。我们可以通过这个访问它。$refs.canvas

因此,在我们的 LineChart.js 中,我们创建了两个变量来存储梯度。因为我们需要数据集。

然后我们创建两个梯度:

this.gradient = this.$refs.canvas
 .getContext(‘2d’)
 .createLinearGradient(0, 0, 0, 450)this.gradient2 = this.$refs.canvas
 .getContext(‘2d’)
 .createLinearGradient(0, 0, 0, 450)

还有一个很酷的函数我们可以用: addColorStop()

我们为每个渐变创建三个颜色停止。对于 0%、50%和 100%。

this.gradient.addColorStop(0, ‘rgba(255, 0,0, 0.5)’)
this.gradient.addColorStop(0.5, ‘rgba(255, 0, 0, 0.25)’);
this.gradient.addColorStop(1, ‘rgba(255, 0, 0, 0)’);

this.gradient2.addColorStop(0, ‘rgba(0, 231, 255, 0.9)’)
this.gradient2.addColorStop(0.5, ‘rgba(0, 231, 255, 0.25)’);
this.gradient2.addColorStop(1, ‘rgba(0, 231, 255, 0)’);

现在我们可以通过这个渐变背景色。我们有一个非常好的梯度。为了获得更好的效果,我们还将 borderColor 设置为 alpha 为 1 的单独颜色。(或者我们使用十六进制值)并将 borderWidth 设置为 1,最后但同样重要的是 pointColor。

borderColor: ‘#FC2525’, 
pointBackgroundColor: ‘white’, 
borderWidth: 1, 
pointBorderColor: ‘white’,

介绍会;展示会

最后一步是给 App.vue 中的容器添加一些样式

👏决赛成绩

编码快乐!

黑客中午是黑客如何开始他们的下午。我们是 @AMI 家庭的一员。我们现在接受投稿并乐意讨论广告&赞助机会。

如果你喜欢这个故事,我们推荐你阅读我们的最新科技故事趋势科技故事。直到下一次,不要把世界的现实想当然!


本站为非盈利网站,作品由网友提供上传,如无意中有侵犯您的版权,请联系删除