PHP处理数据为echarts多条折线图格式

1、echrts多条折线

2、代码:

//获取1-4月;张三,李四,王五的步数
public function moreLineData(){//数据从数据库查出来是一个二维数组,按照月份升序$data = [['month' => 1, 'name'=>'张三', 'step_number'=>10000],//1月份张三走了10000步['month' => 1, 'name'=>'李四', 'step_number'=>12000],['month' => 1, 'name'=>'王五', 'step_number'=>13000],['month' => 2, 'name'=>'李四', 'step_number'=>12100],['month' => 2, 'name'=>'王五', 'step_number'=>13100],['month' => 3, 'name'=>'张三', 'step_number'=>10110],['month' => 3, 'name'=>'王五', 'step_number'=>13110],['month' => 4, 'name'=>'张三', 'step_number'=>14000],['month' => 4, 'name'=>'李四', 'step_number'=>14100],['month' => 4, 'name'=>'王五', 'step_number'=>14400],];$series = $xAxisData = $legendData = [];    //定义数组//判断数据是否存在if($data){//获取月份数组:去重,索引重置$monthList = array_values(array_unique(array_column($data, 'month')));$xAxisData = $monthList;/**循环data数据,以name为索引,累加每个人的数据组装数据格式为:$series = ['张三'=>[ 'name'=>'张三', 'data'=> [0=>10000,2=>10110,3=>14000] ],'李四'=>[ 'name'=>[], 'data'=>[] ],...]*/foreach ($data as $dataKey => $dataValue) {$name = $dataValue['name'];     //当前数据所属人$month = $dataValue['month'];   //当前数据的月份$monthIndex = array_search($month, $monthList); //当前月所属的索引if(!isset($series[$name])){$legendData[] = $name;$series[$name]['name'] = $name;}$series[$name]['data'][$monthIndex] = $dataValue['step_number'];}$series = array_values($series);    //重置$series索引$monthIndex = array_keys($monthList);foreach ($series as $seriesKey => &$seriesValue){   //补上用户为0步月份的数据$dataIndexs = array_keys($seriesValue['data']);   //获取已有月份的索引$diffIndexs = array_diff($monthIndex, $dataIndexs); //与所有月份对比,求差集:在$monthIndex中,不在$dataIndexs中if($diffIndexs){    //如果存在,循环数据;补上步数为0foreach ($diffIndexs as $diffValue){$seriesValue['data'][$diffValue] = 0;   //步数设为0}}}//数组按索引升序foreach ($series as $sortKey => &$sortValue){ksort($sortValue['data']);  //按照数组索引升序排序;索引保持}}else{$xAxisData = ['暂无'];$legendData = ['用户步数'];$series = [['name'=>'-','data'=> [0]]];}$result = ['xAxisData'=>$xAxisData,'series'=>$series,'legendData' => $legendData];return $result; //json_encode($result, JSON_UNESCAPED_UNICODE);
}

PHP处理数据为echarts多条折线图格式相关推荐

  1. 解决ECharts两条条折线图数据一样时,拐点处数据重合(设置ECharts两条折线图拐点处数据一上一下)

    解决办法:在series里选择一条数据,给其label的position赋值为"top"或"bottom",与另一个进行区分. 示例代码如下: option = ...

  2. echarts 多条折线图

    在线查看:http://gallery.echartsjs.com/editor.html?c=xRxGWFXLc0 1. echarts 到echarts官网:http://echarts.baid ...

  3. vue + echarts 多条折线图

    html: <!-- 折线图--> <div id="myChart1"/> js: // 折线图getLine () {// 基于准备好的dom,初始化e ...

  4. echart 折线从左到右动画效果_echarts多条折线图动态分层的实现方法

    1.关于Echarts 大家可以到这个网址看一下,还是比较详细的. 这个功能还是很强大的,对于喜欢做数据统计来说是美味的. 2.echarts多条折线图动态分层 var xData = param.x ...

  5. Echarts动态加载多条折线图

    背景:动态加载多条折线图,折线图条数不确定 页面效果: 页面代码 //气象数据function serchQx(beginTime, endTime, str, parameter) {$(" ...

  6. [VUE2/VUE3]基于echarts的动态折线图组件

    [VUE2/VUE3]基于echarts的动态折线图组件 时间格式化代码 export default function formatSecond(value: number) {let millis ...

  7. React+echarts+antd实现折线图

    使用echarts实现折线图功能,并加入antd的Tabs切换,先贴个图 如上图,我分出了三个Tabs预想的是将echarts折线图封装为一个子组件,然后三个Tabs都引入该子组件,实现切换的时候都是 ...

  8. 小小数据统计(柱状图、折线图、扇形图)

    代码地址如下: http://www.demodashi.com/demo/12012.html 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要 ...

  9. python matplotlib绘制多条折线图

    python matplotlib绘制多条折线图 代码 import matplotlib.pyplot as pltx = [6, 24, 48, 72] y1 = [87, 174, 225, 2 ...

  10. echarts type:line 折线图 折线折点样式

    echarts type:line 折线图 折线折点样式 series: [{name: '课时',type: 'line',data: [23,60,20,36,23,85],label:{ //折 ...

最新文章

  1. numpy拼接_巧用numpy切分图片
  2. php判断中英文请求,并实现跳转
  3. The idea of ​​router network configuration
  4. 程序员——神圣的职业
  5. 用户收货地址h5页面_如何实现H5可视化编辑器的实时预览和真机扫码预览功能?...
  6. 【python】见过if else组合,但是你见过for else组合吗?
  7. 常用 shell sql 命令
  8. Spring 事务实现机制
  9. 红帽linux安装教程
  10. SPI通信协议详解(五)
  11. BE-Gradient 微流控芯片用于胶质母细胞瘤的研究
  12. ensp华为防火墙的简单区域划分和配置
  13. 一个 Python Bug 干倒了估值 1.6 亿美元的公司
  14. linux nodejs 采集器,前端工程师通过nodejs链接linux,并上传代码进行半自动化更新,省去ssh+ftp的链接工具-前端黑科技-SegmentFault思否...
  15. [GPGPU]图形处理单元上的通用计算
  16. mysql 索引触发_Mysql基本查询、视图、索引、触发器
  17. Activity与Fragment,以及Fragment与Fragment之间的数据通讯
  18. 如何优雅地实现C++编译期多态?
  19. 网络安全等级保护测评高风险判定
  20. 【LeNet、AlexNet、VGG】

热门文章

  1. 功夫小子实践开发-开发环境的基本搭建和配置
  2. python实现简单的socket通信
  3. dispatch作用 react_javascript – redux-react中的dispatch函数
  4. android js 子线程,Android学习笔记:Android中的线程:MainThread 和 WorkerThread
  5. jmx 监控java程序_监控Java Web应用程序 – JMX是正确的选择吗?
  6. 查询结果取交集_MySQL Using intersect 交集
  7. python 重启同一个程序_Python – 在重启之间保存程序的状态?
  8. oracle为表空间增加数据文件_只读数据文件损坏恢复实验记录
  9. git flow命令
  10. linux htop详细功能