Chart.js在Laravel项目中的应用

本文为转载,原文:Chart.js在Laravel项目中的应用

介绍

Chart.js是一个HTML5图表库,使用canvas元素来展示各式各样的客户端图表,支持折线图、柱形图、雷达图、饼图、环形图等, 本文将介绍如何在laravel项目中使用chart.js

安装

可以通过以下命令在 npm 或 bower 中来安装chart.js。

npm install chart.js --save
bower install chart.js --save

可以在你的项目中使用 CDN link。

https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.bundle.js
https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.bundle.min.js
https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.js
https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.min.js

可以从GitHub里面下载最新版本的 Chart.js 从github下载的话,里面也有很多例子可以学习。

我这边选择的是下载了几个js文件,然后放置于Laravel项目的public/js目录下面,如下图:

使用

在html中任何你希望的位置加入以下代码, 这个canvas就是图表的位置。:

<canvas id="my_chart"  width="300" height="300"></canvas>

然后在controller中实现一个数据查询的方法,且要返回一个json字符串, 具体的数据根据你的需求而定,这边我只查了一组数据,制作一个饼图,也可以要多组数据制作折线图,柱状图等。

public function GetChartData(){
        $my_data = array();
        array_push($today_data, VisitCapacity::where(‘my_data‘,‘>=‘, Carbon::today())->where(‘site‘,1)->count());
        array_push($today_data, VisitCapacity::where(‘my_data‘,‘>=‘, Carbon::today())->where(‘site‘,2)->count());
        array_push($today_data, VisitCapacity::where(‘my_data‘,‘>=‘, Carbon::today())->where(‘site‘,3)->count());
        array_push($today_data, VisitCapacity::where(‘my_data‘,‘>=‘, Carbon::today())->where(‘site‘,4)->count());
        Log::info(json_encode($my_data));
        return $my_data;
    }

添加路由:

Route::get(‘get_chart_data‘, ‘Member\[email protected]‘);

js实现:

$.get(‘get_chart_data‘,function (data, status) {
var ctx = document.getElementById("my_chart").getContext("2d");
            var my_chart = new Chart(ctx,{
                type: ‘pie‘,
                data: {
                    labels: [
                        "首页文章列表",
                        "分类文章列表",
                        "文章详情",
                        "关于我",
                    ],
                    datasets: [{
                        data: data,
                        backgroundColor: [
                            window.chartColors.red,
                            window.chartColors.orange,
                            window.chartColors.purple,
                            window.chartColors.green,
                        ],
                    }]
                },
                options: {
                    responsive: true,
                }
            });
});
颜色的定义:
window.chartColors = {
    red: ‘rgb(255, 99, 132)‘,
    orange: ‘rgb(255, 159, 64)‘,
    yellow: ‘rgb(255, 205, 86)‘,
    green: ‘rgb(75, 192, 192)‘,
    blue: ‘rgb(54, 162, 235)‘,
    purple: ‘rgb(153, 102, 255)‘,
    grey: ‘rgb(201, 203, 207)‘
};
结果如下图:

将js中的type的值pie改成doughnut,结果如下图:

更多的使用见官方文档:http://chartjs.cn/docs/#line-chart-introduction

时间: 2024-10-12 20:38:04

Chart.js在Laravel项目中的应用的相关文章

Laravel项目中使用markdown编辑器及图片粘贴上传七牛云

本文为转载,原文:http://www.chairis.cn/blog/article/15 Markdown Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.本次我们选用的编辑器是: Editor.md,官网中也有很详细的介绍.从官网中下载安装下载的内容中,也有很多demo可以借鉴.在下载的包中,去除一些多余的内容,只保留我们需要的内容,然后加到项目的public目录下,如下图红色框内的内容: 项目中使用 在项目中使用edit

laravel项目中css样式表的背景图片不显示

刚学laravel,遇到了很多坑,感觉laravel是挺强大的. 建好后台项目,奈何css样式表的背景图片不显示 .mainhd { background: url(../images/sky/body_bg.png) repeat-x 0px 0px; } 按理上面的写法没错,因为是从别的后台搬过来的,但是图片一直不显示,访问绝对路径却又能显示图片,坑. 原因是因为图片路径要使用单引号或者双引号的,下面是正确的写法 .mainhd { background: url('../images/sk

Node.js压缩web项目中的js,css和图片

安装node.js 这个非常简单,下载下来,配置下环境变量就可以了,使用node -v查看是否安装成功 安装压缩需要的模块分别是uglify-js,clean-css,node-smushit 命令是npm install xxx ,我之前安装都是不适于全局安装的,这个应该无所谓 编写压缩的js(应该很好看懂) /*******压缩JS******/ var fs = require('fs'); var uglify = require("../../nodejs/node_modules/u

d3.js在vue项目中的安装及案例

1. 首先安装 npm install d3 --save-dev或者 cnpm install d3 --save-dev (需要先安装cnpm,本人喜欢用这个国内镜像比较快) 以防万一,然后看package.json 2. 引入:main.js import * as d3 from "d3"; Vue.prototype.$d3 = d3; window.d3 = d3; //暂时设置为全局变量 3. demo代码:  demo源码参考地址 <template> &l

cytoscape.js在vue项目中的安装及案例

1. 安装: npm i cytoscape --save 2. 引入:main.js import cytoscape from 'cytoscape'; Vue.prototype.$cytoscape = cytoscape; 3. demo代码: <template> <div id="MainCy" style="width: 100%;height: 100%;"></div> </template> &l

在Laravel项目中遇到的一些问题

1. 控制器名字要跟控制器类名保持一致(当保存某个版本的文件时,我通常喜欢复制一份并重命名,这时候重命名的文件的类名并没有改变,着往往回影响结果,却一直找不出错在哪里),在备份的时候应该新建一个文件夹backup在项目外面,将备份的文件版本都放在里面. 2. 当添加新的类或者重命名,删除等操作是需要composer dump-autoload一下 3. 使用composer清除缓存: php artisan cache:clear php artisan view:clear 原文地址:http

chart.js操作实例(前后台互通)

前提:需要导入chart.js 我的项目环境是:SpringMVC+mongodb SpringMVC的controller层: /** * 查询得到财务信息报表 * @author liupeng * @param request * @return * @throws UnknownHostException * @throws ParseException */ @RequestMapping(value="/innerChartOutForFinal") public Mode

laravel项目出现Non-static method Redis::hGet() cannot be called statically的解决方法

早上ytkah在配置laravel项目中出现Non-static method Redis::hGet() cannot be called statically错误提示,很显然这是redis出问题了,search了一下大概是因为PHP自带了redis拓展和predis冲突了导致的.打开composer.json看到确实有一个predis扩展,代码如下.那就好办了!有冲突就要进行调解!为了项目的完整和调试的方便,我们可以把php安装的扩展暂时先停止了,刷新laravel项目果然可以了. "pre

使用ASP.NET中的Chart.js在ASP.NETVisual数据中使用Chart.js的可视化数据

Download Chart.js你可以Chart.js从这封信中:https://github.com/chartjs/Chart.js/releases 使用VisualStudio创建新的ASP.NET项目并复制Chart.js在上一步中下载到root项目. 创建一个名为"Home.aspx"并添加如下代码行: 藏   复制码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehi