vue.js 圖表chart.js使用

來源:互聯網
上載者:User

標籤:sep   one   cli   差距   collect   border   install   div   ted   

在使用這個chart.js之前,自己寫過一個餅圖,總之碰到的問題不少,所以能用現成的外掛程式就用,能節省不少時間

這裡不打算介紹chart.js裡面詳細的參數意義和各個參數的用法,只作為首次使用chart.js的一個入門級的說明!

在使用之前,我找到了一個中文的chart.js的文檔地址:http://www.bootcss.com/p/chart.js/docs/,開啟後發現除了菜單是中文的,其他還是英文的,這個可能是從官方直接扒下來的版本,很久沒更新了,部分參數和官方已經差距很大,還是直接看官方的吧http://www.chartjs.org/

首先還是npm安裝chart.js

npm install chart.js --save

 

這裡直接貼出來一個折線圖的代碼好了,比較直接

<template>    <div class="small">            <canvas id="myChart2" width="400px" height="400px"></canvas>    </div></template><script>import Chart from ‘chart.js‘;export default {    components: {    },    data() {        return {        }    },    mounted() {        var ctx2 = document.getElementById("myChart2");        var myChart2 = new Chart(ctx2, {            type: "line",            data: {                labels: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],                datasets: [                    {                        label: "test1",                        backgroundColor: "rgba(225,10,10,0.3)",                        borderColor: "rgba(225,103,110,1)",                        borderWidth: 1,                        pointStrokeColor: "#fff",                        pointStyle: "crossRot",                        data: [65, 59, 0, 81, 56, 10, 40, 22, 32, 54, 10, 30],                        cubicInterpolationMode: "monotone",                        spanGaps: "false",                        fill: "false"                    }                ]            },            options: {                            }        });    },    methods: {    }}</script><style>.small {    width: 500px;    height: 500px;}</style>

如下

new Chart(ctx2, configObject) 中的configObject對象中有三個重要的屬性

          {                type: "",                data: {                },                options: {                }            }

type屬性工作表示圖形形狀

line:折線圖

bar:柱狀圖 

Radar:雷達圖/蛛網圖 

doughnut:環圈圖 

pie:餅圖 

polarArea:極地地區圖

bubble:氣泡分布圖

scatter:散佈圖

data屬性配置圖形上的資料,data裡的資料可以參考各個type的圖每個參數的說明

options配置圖形其他的可選項

另外我們選用一個庫的一個很重要的因素是這個庫瀏覽器的支援程度,經過實際的測試

IE9+和chrome,firefox支援canvas的都可以使用。

針對vue.js封裝的vue-chartjs庫:http://vue-chartjs.org,由於是封裝庫,幾乎所有的參數都要參考chart.js的配置,只不過使用的方式改為vue特有的組件的形式

首先還是安裝庫

npm install vue-chartjs --save

例如我們要建立一個折線圖

LineChart.js

import { Line, mixins } from ‘vue-chartjs‘const { reactiveProp } = mixinsexport default Line.extend({  mixins: [reactiveProp],  props: [‘options‘],  mounted () {    // this.chartData is created in the mixin    this.renderChart(this.chartData, this.options)  }})

RandomChart.vue

<template>    <div class="small">        <line-chart :chart-data="datacollection"></line-chart>        <button @click="fillData()">Randomize</button>    </div></template><script>import LineChart from ‘./LineChart.js‘export default {    components: {        LineChart    },    data() {        return {            datacollection: { labels: [], datasets: [] }        }    },    mounted() {        this.fillData()    },    methods: {        fillData() {            let result = {                labels: [this.getRandomInt(), this.getRandomInt(), this.getRandomInt(),this.getRandomInt()],                datasets: [                    {                        label: ‘Data One‘,                        backgroundColor: ‘#f87979‘,                        data: [this.getRandomInt(), this.getRandomInt(), this.getRandomInt(),this.getRandomInt()]                    }, {                        label: ‘Data One‘,                        backgroundColor: ‘#0f0‘,                        data: [this.getRandomInt(), this.getRandomInt(), this.getRandomInt(),this.getRandomInt()]                    }                ]            };            console.log(result);            this.datacollection = result;        },        getRandomInt() {            return Math.floor(Math.random() * (50 - 5 + 1)) + 5        }    }}</script><style>.small {    max-width: 600px;    margin: 150px auto;}</style>

如果在沒有掌握chart.js的用法之前直接使用vue-chartjs的話,可能會有一些困難,vue-chartjs官方的文檔只介紹了如何建立和使用外掛程式部分,詳細的屬性配置還是需要去chart.js的文檔裡面找。

 

vue.js 圖表chart.js使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.