chart.js-折线图

使用最新版的chart.js

chart.js官网

  • 先定义画布
<div class="bar-chart" style="width:50% !important;height:300px!important;float:left;posttion:relative">
    <h5 class="bar-title">当前周用户注册数一览表</h5>
    <canvas id="currentWeekChart" width="400" height="300"></canvas>
</div>
  • 定义数据集合
    这里用的是静态数据,datasets里还有许多属性,可以到官网详查
 var data = {
            labels: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
            datasets: [
                {
                    label: "用户数量",
                    backgroundColor: "rgba(0, 0, 0, 0.1)",//线条填充色
                    pointBackgroundColor:"rgba(255,48,48,0.2)",//定点填充色
                    data: [65, 59, 80, 81, 56, 55, 40]
                }
            ]
        };
  • 配置options选项(这个配置可以在对统计图的细节做调整)
    这里的options是空的,具体需要哪些配置可以到官网查看每个配置项所代表的含义
var options = {};
  • 获取canvas画布,开始画图
var ctx = document.getElementById("currentWeekChart").getContext("2d");
var currentWeekChart = new Chart(ctx,{
    type: 'line',
    data: data,
    options:options
});
  • 效果图
    在这里插入图片描述

如果有多条线时,只需在data里的datasets添加数据就行,如下

 var data = {
            labels: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
            datasets: [
                {
                    label: "用户数量",
                    backgroundColor: "rgba(0, 0, 0, 0.1)",
                    pointBackgroundColor:"rgba(255,48,48,0.2)",
                    data: [65, 59, 80, 81, 56, 55, 40]
                },
                {
                    label: "另一条线",
                    backgroundColor: "rgba(255,62,150, 0.1)",
                    pointBackgroundColor:"rgba(255,48,48,0.2)",
                    data: [13, 79, 20, 40, 80, 2, 60]
                }
            ]
        };

在这里插入图片描述

首先,您需要编写一个后端API来从数据库中获取数据。这个API应该返回一个JSON格式的数据。例如,如果您使用PHP语言,可以编写以下代码: ```php <?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "dbname"; $conn = mysqli_connect($servername, $username, $password, $dbname); // 检查连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } // 查询数据库 $sql = "SELECT * FROM mytable"; $result = mysqli_query($conn, $sql); // 处理查询结果 $data = array(); while($row = mysqli_fetch_assoc($result)) { $data[] = $row; } // 返回JSON格式的数据 header('Content-Type: application/json'); echo json_encode($data); // 关闭连接 mysqli_close($conn); ?> ``` 然后,您需要编写一个前端页面来使用Ajax从这个API获取数据并使用Chart.js绘制折线图。以下是一个基本的HTML和JavaScript代码示例: ```html <!DOCTYPE html> <html> <head> <title>Chart.js Example</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script> </head> <body> <canvas id="myChart"></canvas> <script> // 使用Ajax从后端API获取数据 var xhr = new XMLHttpRequest(); xhr.open('GET', 'api.php'); xhr.onload = function() { if (xhr.status === 200) { var data = JSON.parse(xhr.responseText); // 使用Chart.js绘制折线图 var ctx = document.getElementById('myChart').getContext('2d'); var myChart = new Chart(ctx, { type: 'line', data: { labels: data.map(function(item) { return item.date; }), datasets: [{ label: 'My Dataset', data: data.map(function(item) { return item.value; }), fill: false, borderColor: 'rgb(75, 192, 192)', tension: 0.1 }] }, options: { scales: { yAxes: [{ ticks: { beginAtZero: true } }] } } }); } else { console.log('Request failed. Returned status of ' + xhr.status); } }; xhr.send(); </script> </body> </html> ``` 您需要根据自己的实际情况修改这些代码,以适应您的数据库结构和数据格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值