1. 程式人生 > >Chart.js 使用示例

Chart.js 使用示例

從MySql 資料庫中獲取資料 ,利用chart.js 繪製柱形圖。

檔案結構:


1.index.php檔案。從資料庫獲取資料。先連線資料庫exercisedata,然後從資料庫的users表中查詢學生名字userName和學生的成績score,並給userName和score取別名label和value,以符合chart.js中繪製圖形時需要的資料格式。執行sql語句後,把結果以json格式返回。程式碼如下:

<span style="font-size:18px;"> <?php
//資料庫配置
$dbconf= array(  
        'host'=>'127.0.0.1',  
        'user'=>'root',  
        'password'=>'123456',//因為測試,我就不設定密碼,實際開發中,必須建立新的使用者並設定密碼  
        'dbName'=>'exercisedata',  
        'charSet'=>'utf8',  
        'port'=>'3306' );
function openDb($dbConf){      $conn=mysqli_connect($dbConf['host'],$dbConf['user'],$dbConf['password'],$dbConf['dbName'],$dbConf['port']) or die('開啟失敗');  
    //當然如上面不填寫資料庫也可通過mysqli_select($conn,$dbConf['dbName'])來選擇資料庫  
    mysqli_set_charset($conn,$dbConf['charSet']);//設定編碼  
    return $conn;  
} 
$conn=openDb($dbconf);  
//2query方法執行增、查、刪、改  
$sql='SELECT userName as `label`, score as `value` FROM exercisedata.users';  
/*************資料查詢***************************/  
$rs=$conn->query($sql);

$data=array();//儲存資料  
while($tmp=mysqli_fetch_assoc($rs)){//每次從結果集中取出一行資料  
    $data[]=$tmp;  
}  
//對資料進行相應的操作  
 echo  json_encode($data);</span>

資料庫中的users


訪問http://localhost/test/php/index.php 得到如下結果:

則說明資料庫連線成功。

2.index.html檔案。在<script></script>中引入Chart.js庫、index.js檔案, Chart.js是一個簡單、面向物件、為設計者和開發者準備的圖表繪製工具庫。在body標籤中新增一個canvas標籤,用來顯示視覺化柱形圖。程式碼如下:

<!DOCTYPE html>
<html lang="zh-cn">

<head>
    <meta http-equiv="Content-Type" charset="UTF-8" />
    <title>案例顯示</title>
    <!--     <link rel="stylesheet" href="../css/ranking.css" /> -->


<style type="text/css">
	*
{
    margin: 0px;
    padding: 0px;
}

body
{
    background: #EEE;
    text-align:center;
}

#drawCanvas
{
    background: white;
    border: 1px solid #CCC;
}
</style>
</head>

<body>
    <script type="text/javascript" src="../js/Chart.js"></script>
        <script type="text/javascript" src="../js/jquery-1.11.1.min.js"></script>
    <script type="text/javascript" src="../js/index.js"></script>
    <p>A班成績表</p>
    <canvas id="myChart" width="600" height="400"></canvas>
</body>

</html>


3.index.js檔案。寫一個用來畫圖的js函式bar,有一個引數Data,然後編寫getdatafromDB 函式用ajax 獲取php檔案中的資料data,並呼叫bar方法,在window.onload函式中呼叫getdatafromDB函式。 bar函式分為兩部分:一部分資料設定,一部分為顯示樣式設定。

	 window.onload=function()
{
     getdatafromDB();
}

var getdatafromDB = function(){
	$.ajax({
		url: "../php/index.php",
		type: "POST",
		dataType:"json",
         error: function(){  
             alert('Error loading XML document');  
         },  
		success:function(data){
            console.info(data);
             bar(data);
        }
    });
}
function bar(Data)
{
    if(Data.length==null || Data.length == 0)
        return;
    var barData={};
    barData.labels=[];
    barData.datasets=[];
    var temData={};
    temData.data=[];
    temData.fillColor= "rgba(151,187,205,0.5)";
    temData.strokeColor = "rgba(151,187,205,0.8)";
    temData.highlightFill="rgba(151,187,205,0.75)",
    temData.highlightStroke= "rgba(151,187,205,1)";
    
    for(var i=0;i<Data.length;i++)
    {
        barData.labels.push(Data[i].label);
        temData.data.push(Data[i].value);
    }
    barData.datasets.push(temData); //封裝一個規定格式的barData。
    console.info(barData);
    /     /// 動畫效果
    var options = {           
        scaleOverlay: false,
        scaleOverride: false,
        scaleSteps: null,
        scaleStepWidth: null,
        scaleStartValue: null,  
        scaleLineColor: "rgba(0,0,0,.1)",  
        scaleLineWidth: 1,   
        scaleShowLabels: true,
        scaleLabel: "<%=value%>",
        scaleFontFamily: "'Arial'",   
        scaleFontSize: 12,
        scaleFontStyle: "normal",   
        scaleFontColor: "#666",
        scaleShowGridLines: true,
        scaleGridLineColor: "rgba(0,0,0,.05)",
        scaleGridLineWidth: 1,
        bezierCurve: true,
        pointDot: true,
        pointDotRadius: 3,
        pointDotStrokeWidth: 1,
        datasetStroke: true,
        datasetStrokeWidth: 2,
        datasetFill: true,
        animation: true,
        animationSteps: 60,
        animationEasing: "easeOutQuart",              
        onAnimationComplete: null
    }
    var ctx  = document.getElementById("myChart").getContext('2d');
    myChart = new Chart(ctx).Bar(barData,options, { //重點在這裡
        responsive : true
    });
}


相關推薦

Chart.js 使用示例

從MySql 資料庫中獲取資料 ,利用chart.js 繪製柱形圖。 檔案結構: 1.index.php檔案。從資料庫獲取資料。先連線資料庫exercisedata,然後從資料庫的users表中查詢學生名字userName和學生的成績score,並給userName和sc

jsp 快速開發報表 chart.js 餅圖示例 系列教材(一)

畫餅圖,需要有兩個js,一個是chart.js一個是jquery.min.js,我這兩個都放在了webContent下了引入方法: <script type="text/javasc

Chart.js在Laravel項目中的應用

tchar chart.js ins 線圖 一個數 希望 來安 支持 route 本文為轉載,原文:Chart.js在Laravel項目中的應用 介紹 Chart.js是一個HTML5圖表庫,使用canvas元素來展示各式各樣的客戶端圖表,支持折線圖、柱形圖、雷達圖、餅圖、

chart.js使用常見問題

size require down 對象 中文 我們 function blog ges Chart.js是一個簡單、面向對象、為設計者和開發者準備的圖表繪制工具庫。 在使用過程中新手可能會遇到很多問題導致圖標無法顯示。下面我們來看一下在使用過程中可能會遇到的問題。

chart.js簡單的圖標繪制工具

圖表 .cn font 寬度 雷達 20px convert alt fff 前 言 chart.js  Chart.js幫你用不同的方式讓你的數據變得可視化。每種類型的圖表都有動畫效果,並且看上去非常棒,即便是在retina屏幕上。  Chart.js基於HTML

vue.js 圖表chart.js使用

cross wid 差距 雷達 mint www 選項 class small 在使用這個chart.js之前,自己寫過一個餅圖,總之碰到的問題不少,所以能用現成的插件就用,能節省不少時間 這裏不打算介紹chart.js裏面詳細的參數意義和各個參數的用法,只作為首次使用ch

[轉] angular2+highcharts+chart.js

nsh 4.5 about 示例 label 授權 color blank options 這裏是在ionic2下使用highchairs和chart.js的簡單示例chartjs部分參考http://www.jianshu.com/p/bc18132da812 1.安

Chart.js Y軸數據以百分比展示

too 取值 java docs 調試 ocs 配置 。。 tip 新手一枚,解決的問題喜歡記錄,也許正好有人在網上迷茫的百度著。-0- 最近使用Chart.js做折線圖的報表展示,直接顯示整數啥的很好弄畢竟例子直接在哪裏可以用,百分比就沒辦法了。百度慢慢汲取營養,雖然

[轉]Chart.js入門教程

Chart.js是一個簡單、面向物件、為設計者和開發者準備的圖表繪製工具庫。   相信大部分人都一樣,看到一大筐用文字或者表格形式呈現的資料就頭疼。因為這種呈現方式也太無聊了吧。。。而且這對於我們處理原始資料也造成一定的困難。 不信?我反手就是一個例子: 更進一步說,柱狀圖能夠直觀

chart.js使用用法

chart.js使用用法 定義畫布 <canvas id="myChart"></canvas> <!--必須是canvas ,給好Id--> 建立圖表 var ctx = document.getElementById('myChar

chart.js應用中遇到的問題

問題一:chart.js的版本問題:開啟官網https://github.com/chartjs/Chart.js/releases/tag/v2.7.3,點選Tags,選擇最新版本,我這裡選用的是V2.7.3,下載對應的ZIP檔案,下載好後,解壓縮,開啟dist資料夾,找        

Angular Chart.js第三方庫ng-chartjs基礎使用

Angular Chart.js第三方庫ng-chartjs基礎使用 專案github地址 這個專案支援基本的Chart.js圖表,並且支援內聯外掛和全域性外掛的使用。 Demo地址 支援圖表型別 line bar radar pie

Chart.js 做漂亮的響應式表單

資料包圍著我們。雖然搜尋引擎和其他應用都對基於文字方式表示的資料偏愛有加,但人們發現視覺化是更容易理解的一種方式。今年初,SitePoint 發表了 Aurelio 的文章《 Chart.js簡介》。在深入研究 Chart.js 的功能後,本文將會講解這篇簡介的一些重點。 入門

Chart.js 與 ASP.NET MVC 整合應用

Chart.js 是一套開放原始碼的「圖表」繪製函式庫,和其他第三方的圖表工具相比,Chart.js 的特色如下: 支援 HTML 5、響應式網頁 (RWD, Responsive Web Design) 可免費使用,且可作為商業用途 開放原始碼 (GitHub) 可用 JavaScrip

大量 D3.js 示例

D3.js 是一個基於資料操作文件JavaScript庫。D3幫助你給資料帶來活力通過使用HTML、SVG和CSS。D3重視Web標準為你提供現代瀏覽器的全部功能,而不是給你一個專有的框架。結合強大的視覺化元件和資料驅動方式Dom操作。以下收集了1800+的 D3.j

JS元件系列——開源免費圖表元件:Chart.js

前言:最近被開源免費得有點上火了,各種元件首先想到的就是是開源否、是否免費、是否和bootstrap風格一致。想著以後做報表肯定要用到圖表元件的,於是在Bootstrap中文網上面找到了Chart.js,總的來說,這個元件不能說最好,但是對於一般不太複雜的報表是夠用了。今天就來看看它如何使用吧。 一、元件比

chart.js外掛生成折線圖時資料普遍較大時Y軸資料不從0開始的解決辦法[bubuko.com]

預設情況下如下圖 Y軸並不是從0開始,這樣折現圖的幅度會很大,不是正常的幅度,解決辦法如下, 示例程式碼: window.onload = function () { var ctx = document.getElementById(

django中使用chart.js的例子

背景:由於運營的需求,需要一些資料圖表進行分析。整個思路是這樣的,利用DJANGO的ORM操作資料庫,從庫中查詢出所需要的資料。並把查詢整個動作封裝成一個數據介面。返回給前端json格式。利用chart.js將資料展現在頁面上。 html 引用好所需要的

python使用scrapy解析js示例

from selenium import selenium class MySpider(CrawlSpider):     name = 'cnbeta'     allowed_domains = ['cnbeta.com']     start_urls = ['http://www.jb51.

Chart.js】通過Ajax請求JSON資料來繪製圖表

背景   在使用Chart.js繪製圖表時,我們通常會有這樣的需求:從後臺方法動態獲取圖表的資料,而非Demo中使用的靜態資料。本文將分享如何使用Ajax動態請求JSON資料並且完成圖表的繪製。 解決方案 在html頁中新增對Ch