Chart.js在Laravel项目中的应用示例

发布时间 - 2026-01-11 03:10:54    点击率:

介绍

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\UserController@GetChartData');

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Chart.js  # Laravel  # 使用Chart.js图表库制作漂亮的响应式表单  # Chart.js 轻量级HTML5图表绘制工具库(知识整理)  # 详解Chart.js轻量级图表库的使用经验  # 在 Angular 中使用Chart.js 和 ng2-charts的示例代码  # 使用Vue.js 和Chart.js制作绚丽多彩的图表  # ichart.js绘制虚线、平均分虚线效果的实现代码  # vue集成chart.js的实现方法  # 利用ECharts.js画K线图的方法示例  # JavaScript Chart 插件整理  # 详解vue文件中使用echarts.js的两种方式  # vue.js+Echarts开发图表放大缩小功能实例  # Chart.js功能与使用方法小结  # 如下图  # 文章列表  # 的是  # 是一个  # 几个  # 也有  # 我只  # 折线图  # 可以通过  # 要多  # 而定  # 首页  # 中来  # 各式各样  # 大家多多  # 我这边  # 客户端  # 数据查询  # 文档  # 下载最新版本 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 高防服务器如何保障网站安全无虞?  如何在万网ECS上快速搭建专属网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  iOS UIView常见属性方法小结  详解Oracle修改字段类型方法总结  如何在企业微信快速生成手机电脑官网?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  canvas 画布在主流浏览器中的尺寸限制详细介绍  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  大同网页,大同瑞慈医院官网?  如何正确选择百度移动适配建站域名?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  详解Android图表 MPAndroidChart折线图  中山网站推广排名,中山信息港登录入口?  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  如何基于云服务器快速搭建网站及云盘系统?  javascript基于原型链的继承及call和apply函数用法分析  Laravel如何配置.env文件管理环境变量_Laravel环境变量使用与安全管理  如何在万网主机上快速搭建网站?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  EditPlus中的正则表达式实战(6)  简单实现Android验证码  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  Linux安全能力提升路径_长期防护思维说明【指导】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  独立制作一个网站多少钱,建立网站需要花多少钱?  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Laravel怎么在Controller之外的地方验证数据  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践  Laravel如何配置和使用缓存?(Redis代码示例)  浅谈redis在项目中的应用  C++用Dijkstra(迪杰斯特拉)算法求最短路径  黑客如何通过漏洞一步步攻陷网站服务器?  如何快速上传自定义模板至建站之星?  微信小程序 scroll-view组件实现列表页实例代码  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  如何在IIS中配置站点IP、端口及主机头?  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程