Chart.js

Chart.js

創建Chart.js

//一個demo
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>圖表第一種配置方式</title>
    <script src="Chart.bundle.js"></script>
</head>
<body>
<canvas id="myChart"></canvas>
<script>
    var ctx = document.getElementById("myChart").getContext("2d");

    // 設置數據內容
    var data = {
        // 設置圖表中水平軸顯示的內容
        labels: ["January", "February", "March", "April", "May", "June", "July"],
        // 設置圖表中的數據
        datasets: [
            {
                // 當前圖表數據的標題內容
                label: "My First dataset",
                // 是否填充折線與水平軸中間的區域
                fill: true,
                // 設置折線數據點的貝塞爾曲線值(值為0時為折線)
                lineTension: 0.1,
                // 設置背景顏色
                backgroundColor: "rgba(75,192,192,0.4)",
                // 設置邊框顏色
                borderColor: "rgba(75,192,192,1)",
                // 設置折線端點的樣式
                borderCapStyle: 'butt',
                // 破折號的長度和間距
                borderDash: [],
                // 破折號的偏移量
                borderDashOffset: 0.0,
                // 設置折線交點的樣式
                borderJoinStyle: 'miter',
                // 設置折線數據點的邊框顏色
                pointBorderColor: "rgba(75,192,192,1)",
                // 設置折線數據點的背景顏色
                pointBackgroundColor: "#fff",
                // 設置折線數據點的邊框寬度
                pointBorderWidth: 1,
                // 設置當鼠標懸停折線數據點時的半徑
                pointHoverRadius: 5,
                // 設置當鼠標懸停折線數據點時的背景顏色
                pointHoverBackgroundColor: "rgba(75,192,192,1)",
                // 設置當鼠標懸停折線數據點時的邊框顏色
                pointHoverBorderColor: "rgba(220,220,220,1)",
                // 設置當鼠標懸停折線數據點時的邊框寬度
                pointHoverBorderWidth: 2,
                // 設置折線數據點的半徑
                pointRadius: 1,
                //
                pointHitRadius: 10,
                // 設置折線中所有的數據
                data: [65, 59, 80, 81, 56, 55, 40],
                // 如果設置為true,將在沒有數據或空數據的點之間繪制直線
                spanGaps: false,
            }
        ]
    };

    var options = {
        title: {
            display: true,
            text: 'Custom Chart Title'
        }
    }

    /*
        創建圖表對象
        1. 第一種方式 - 新版本提供
         var myLineChart = new Chart(ctx, {
             type: 'line',
             data: data,
             options: options
         });
        2. 第二種方式 - 舊版本支持
         var myLineChart = Chart.Line(ctx, {
             data: data,
             options: options
         });
     */
    var myLineChart = Chart.Line(ctx, {
        data: data,
        options: options
    });
</script>
</body>
</html>

創建折線圖

new Chart(document.getElementById("canvas"),{
    "type":"line",    //圖表類型
    "data":{
        "labels":["January","February","March","April","May","June","July"],    //X軸
        "datasets":[
            {"label":"My First Dataset",    //標題
            "data":[65,59,80,81,56,55,40],    //與labels對應
            "fill":false,    //是否填充
            "borderColor":"rgb(75, 192, 192)",
            "lineTension":0.3}    //貝塞爾曲線效果
        ]
    },
    "options":{}
});

創建柱狀圖

var ctx = document.getElementById('canvas');
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
        datasets: [{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2, 3],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
                'rgba(255, 159, 64, 0.2)'
            ],
            borderColor: [
                'rgba(255,99,132,1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
                'rgba(255, 159, 64, 1)'
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero:true
                }
            }]
        }
    }
});

雷達圖

new Chart(document.getElementById("canvas"),{
    "type":"radar",
    "data":{
        "labels":[
            "Eating","Drinking","Sleeping","Designing","Coding","Cycling","Running"
        ],
        "datasets":[
            {
                "label":"My First Dataset","data":[65,59,90,81,56,55,40],
                "fill":true,
                "backgroundColor":"rgba(255, 99, 132, 0.2)",
                "borderColor":"rgb(255, 99, 132)",
                "pointBackgroundColor":"rgb(255, 99, 132)",
                "pointBorderColor":"#fff","pointHoverBackgroundColor":"#fff",
                "pointHoverBorderColor":"rgb(255, 99, 132)"
            },
            {
                "label":"My Second Dataset","data":[28,48,40,19,96,27,100],
                "fill":true,
                "backgroundColor":"rgba(54, 162, 235, 0.2)",
                "borderColor":"rgb(54, 162, 235)",
                "pointBackgroundColor":"rgb(54, 162, 235)",
                "pointBorderColor":"#fff",
                "pointHoverBackgroundColor":"#fff",
                "pointHoverBorderColor":"rgb(54, 162, 235)"}]
    },
    "options":{
        "elements":{
            "line":{"tension":0,"borderWidth":3}
        }
    }
});

極地區域圖

var ctx = document.getElementById('canvas');
var data = {
   datasets: [{
       data: [
           11,16,7,3,14
       ],
       backgroundColor: [
           "#FF6384",
           "#4BC0C0",
       ],
       label: 'My dataset' // for legend
   }],
   labels: [
       "Red",
       "Green",
       "Yellow",
       "Grey",
       "Blue"
   ]
};
var options = {};
var myPolarAreaChart = new Chart(ctx, {
   type: 'polarArea',
   data: data,
   options: options
});

餅狀圖與環形圖

var ctx = document.getElementById('canvas');
var data = {
    labels: [
        "Red",
        "Blue",
        "Yellow"
    ],
    datasets: [
        {
            data: [300, 50, 100],
            backgroundColor: [
                "#FF6384",
                "#36A2EB",
                "#FFCE56"
            ],
            hoverBackgroundColor: [
                "#FF6384",
                "#36A2EB",
                "#FFCE56"
            ]
        }]
};
var options = {};
//餅狀圖
var myPieChart = new Chart(ctx,{
    type: 'pie',
    data: data,
    options: options
});
//環形圖
var myDoughnutChart = new Chart(ctx, {
    type: 'doughnut',
    data: data,
    options: options
});

氣泡圖

var ctx = document.getElementById("myChart").getContext("2d");
var data = {
    datasets: [
        {
            label: 'First Dataset',
            data: [
                {
                    x: 20,
                    y: 30,
                    r: 15
                },
                {
                    x: 40,
                    y: 10,
                    r: 10
                }
            ],
            backgroundColor:"#FF6384",
            hoverBackgroundColor: "#FF6384",
        }]
};
var options = {};
var myBubbleChart = new Chart(ctx,{
    type: 'bubble',
    data: data,
    options: options
});

設置圖表的位置和大小

將canvas用div包裹起來,設置寬高,使用absolute來固定位置

配置

全局配置
Chart.defaults.global.title.display = true;
Chart.defaults.global.title.text = 'Custom Chart Title';

混合型圖表

var ctx = document.getElementById("myChart").getContext("2d");

var myChart = new Chart(ctx, {
    type: 'bar',      //必須設為bar
    data: {
        labels: ['Item 1', 'Item 2', 'Item 3'],
        datasets: [
            {
                type: 'bar',      //要增加type屬性
                label: 'Bar Component',
                data: [10, 20, 30],
            },
            {
                type: 'line',
                label: 'Line Component',
                data: [30, 20, 10],
            }
        ]
    }
});

Chartist.js

HighChart.js

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,582評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,540評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,801評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,223評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,442評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,976評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,800評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,996評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,233評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,702評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容