PHP绘制曲线(历史曲线和实时曲线都可以)

数据库连接部分

<?php
    $mysql_server_name='localhost'; //改成自己的mysql数据库服务器

    $mysql_username='root'; //改成自己的mysql数据库用户名

    $mysql_password='123456'; //改成自己的mysql数据库密码,初始默认密码为空

    $mysql_database='login'; //改成自己的mysql数据库名
 ?>

php查询数据库部分

<?php
  require("db_config.php");
  $conn=mysqli_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database);
  //mysqli_query("set names 'utf8'"); //数据库输出编码
  //mysql_select_db($mysql_database); //打开数据库
  $result = mysqli_query($conn,"select * from test1");
  $data="";
  $array= array();
  class User{
    public $name;
    public $data1;
	public $data2;
	public $data3;
	public $data4;
	public $data5;
	public $data6;
	public $data7;
  }
  while($row = mysqli_fetch_assoc($result)){
    $user=new User();
    $user->name = $row['username'];
    $user->data1 = $row['data1'];
	$user->data2 = $row['data2'];
	$user->data3 = $row['data3'];
	$user->data4 = $row['data4'];
	$user->data5 = $row['data5'];
	$user->data6 = $row['data6'];
	$user->data7 = $row['data7'];
    $array[]=$user;
	//echo "1111";
  }
  $data=json_encode($array);
   //echo "{".'"user"'.":".$data."}";
  echo $data;
?>

html调用echart展示曲线部分

<!DOCTYPE html>
<html style="height: 100%">
   <head>
       <meta charset="utf-8">
	   <meta http-equiv="refresh" content="10">
   </head>
   <body style="height: 100%; margin: 0">
       <div id="container" style="height: 100%"></div>
       <script type="text/javascript" src="echarts.js"></script>
	    <script src="jquery-3.4.1.min.js"></script>
	
	
  <script type="text/javascript">
 
         var arr1=[],arr2=[];arr3=[];arr4=[];arr5=[];arr6=[];
              function arrTest1()
			  {
                  $.ajax({
                  type:"post",
                  async:false,
                  url:"data.php",
                  data:{},
                  dataType:"json",
                  success:function(result){
                    if (result) {
                      for (var i = 0; i < result.length; i++) {
                          arr1.push(result[i].name);
                          arr2.push(result[i].data1);
						  arr3.push(result[i].data2);
						  arr4.push(result[i].data3);
						  arr5.push(result[i].data4);
						  arr6.push(result[i].data5);
                      }
                    }
                  }
                })
                return arr1,arr2;
              }
			  
			  arrTest1();   
              
              console.log(arr2[0]);			  
            

        
        var dom = document.getElementById("container");
        var myChart = echarts.init(dom);
        var app = {};
        option = null;
        option = {
            title: {
                text: '折线图堆叠'
            },
            tooltip: {
                trigger: 'axis'
            },
            legend: {
                data:['1#进线','2#进线','3#进线','4#进线','5#进线','xxx']
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            toolbox: {
                feature: {
                    saveAsImage: {}
                }
            },
            xAxis: {
                type: 'category',
                boundaryGap: false,
                data:arr1
            },
            yAxis: {
                type: 'value'
            },
            series: [
                {
                    name:'1#进线',
                    type:'line',
                    stack: '总量',
                    data:arr2
                },
                {
                    name:'2#进线',
                    type:'line',
                    stack: '总量',
                    data:arr3
                },
                {
                    name:'3#进线',
                    type:'line',
                    stack: '总量',
                    data:arr4
                },
                {
                    name:'4#进线',
                    type:'line',
                    stack: '总量',
                    data:arr5
                },
                {
                    name:'5#进线',
                    type:'line',
                    stack: '总量',
                    data:[20, 32, 91, 94, 129, 130, 320]
                },
				  {
                    name:'xxx',
                    type:'line',
                    stack: '总量',
                    data:arr2
                }
            ]
        };

            myChart.setOption(option, true);

  </script>


   </body>
</html>

PHP可以使用GD图像库来绘制柱状图和曲线图。 绘制柱状图示例代码: ``` <?php // 创建画布 $img = imagecreatetruecolor(400, 300); // 设置颜色 $bg_color = imagecolorallocate($img, 255, 255, 255); $bar_color = imagecolorallocate($img, 0, 0, 255); // 填充背景色 imagefill($img, 0, 0, $bg_color); // 绘制柱状图 $data = array(30, 40, 50, 60, 70); $bar_width = 50; $gap = 20; $x = $gap; $y = 250; foreach ($data as $value) { $height = $value * 2; imagefilledrectangle($img, $x, $y - $height, $x + $bar_width, $y, $bar_color); $x += $bar_width + $gap; } // 输出图像 header('Content-type: image/png'); imagepng($img); // 释放资源 imagedestroy($img); ?> ``` 绘制曲线图示例代码: ``` <?php // 创建画布 $img = imagecreatetruecolor(400, 300); // 设置颜色 $bg_color = imagecolorallocate($img, 255, 255, 255); $line_color = imagecolorallocate($img, 0, 0, 255); // 填充背景色 imagefill($img, 0, 0, $bg_color); // 绘制曲线图 $data = array(30, 40, 50, 60, 70); $point_size = 6; $gap = 50; $x = $gap; $y = 250; foreach ($data as $value) { $height = $value * 2; imagefilledellipse($img, $x, $y - $height, $point_size, $point_size, $line_color); $x += $gap; } // 连接点 $x = $gap; $y = 250; for ($i = 0; $i < count($data) - 1; $i++) { $height1 = $data[$i] * 2; $height2 = $data[$i+1] * 2; imageline($img, $x, $y - $height1, $x + $gap, $y - $height2, $line_color); $x += $gap; } // 输出图像 header('Content-type: image/png'); imagepng($img); // 释放资源 imagedestroy($img); ?> ``` 以上是基本的示例代码,可以根据实际需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值