zoukankan      html  css  js  c++  java
  • Echar使用案例

    ECharts动态数据+时间轴+dataZoom

    https://blog.csdn.net/zouhaodong/article/details/80974837

    echarts 通过ajax实现动态数据加载

    https://www.cnblogs.com/xy-milu/p/9372987.html

    echarts数据动态更新和dataZoom被重置的解决方案

    https://blog.csdn.net/aliven1/article/details/98177378

    推荐!数据可视化的十种优秀JavaScript图表库

    https://developer.51cto.com/art/201904/595652.htm

      1 <script type="text/javascript">
      2     // 基于准备好的dom,初始化echarts实例
      3     var myChart = echarts.init(document.getElementById('main'));
      4 
      5     $("input[name=qryPrice]").change(function () {
      6         QueryChart();
      7     });
      8     function QueryChart() {
      9         myChart.showLoading();
     10         $.ajax({
     11             type: "post",
     12             url: "@MaterialSpecChartUrl",
     13             data: {
     14                 qryPrice: $("input[name='qryPrice']:checked").val(),
     15                 ItemType: $('#SpecChartItemType').val(),
     16                 ItemMainClass: $('#SpecChartItemMainClass').val(),
     17                 ItemSubClass: $('#SpecChartItemSubClass').val(),
     18                 ProjectNo: $('#SpecChartProjectNo').val(),
     19                 SpecModel: $('#SpecChartSpecModel').val(),
     20                 Brand: $('#SpecChartBrand').val()
     21             },
     22             success: function (result) {
     23                 myChart.hideLoading();
     24                 var resultJ = JSON.parse(result);
     25                 var data = resultJ.rows;
     26                 // 指定图表的配置项和数据
     27                 var option = {
     28                     //title: {
     29                     //    text: '同一规格型号历史价格'
     30                     //},
     31                     tooltip: {
     32                         trigger: 'item',
     33                         axisPointer: {
     34                             type: 'cross'
     35                         },
     36                         formatter: function (param) {
     37                             return [
     38                                 '时间: ' + param.data.CreateTime + '<hr size=1 style="margin: 3px 0">',
     39                                 '价格: ' + param.data.Price + '<br/>',
     40                                 '数量:' + param.data.Amount + '<br/>',
     41                                 '品牌: ' + param.data.Brand + '<br/>',
     42                                 '城市: ' + param.data.CityName + '<br/>',
     43                                 '项目: ' + param.data.ProjectName
     44                             ].join('');
     45                         }
     46                     },
     47                     grid: {
     48                         right: 150,
     49                         left: 50
     50                     },
     51                     legend: {
     52                         //data: ['单价', '数量']
     53                         type: 'scroll',
     54                         orient: get_orient(), // 'horizontal'
     55                         right: get_legendRight(),
     56                         // 100,
     57                         formatter: function (name) {
     58                             return echarts.format.truncateText(name, 120, '14px Microsoft Yahei', '…');
     59                         },
     60                         tooltip: {
     61                             show: true
     62                         }
     63                     },
     64                     dataset: {
     65                         // 提供一份数据。
     66                         source: data
     67                     },
     68                     xAxis: {
     69                         type: 'time',
     70                         axisLabel: {
     71                              '100%',
     72                             formatter: function (value, index) {
     73                                 // 格式化成月/日,只在第一个刻度显示年份
     74                                 var date = new Date(value);
     75                                 var y = date.getFullYear();
     76                                 var m = date.getMonth() + 1;
     77                                 var d = date.getDate();
     78                                 return y+'-'+m+'-'+d;
     79                             }
     80                         },
     81                         inverse: true,
     82                         splitLine: {
     83                             show: false
     84                         }
     85                     },
     86                     yAxis: {
     87                         type: 'value',
     88                         //gridIndex: 1,
     89                         splitLine: {
     90                             show: false
     91                         }
     92                     },
     93                     dataZoom: [
     94                         {   // 这个dataZoom组件,默认控制x轴。
     95                             type: 'slider', // 这个 dataZoom 组件是 slider 型 dataZoom 组件
     96                             handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
     97                             xAxisIndex: [0],
     98                             start: 70,      // 左边在 10% 的位置。
     99                             end: 100         // 右边在 60% 的位置。
    100                         },
    101                         {   // 这个dataZoom组件,也控制x轴。
    102                             type: 'inside', // 这个 dataZoom 组件是 inside 型 dataZoom 组件
    103                             xAxisIndex: [0],
    104                             start: 70,      // 左边在 10% 的位置。
    105                             end: 100         // 右边在 60% 的位置。
    106                         }
    107                     ],
    108                     series: serie_func(data)
    109                 };
    110 
    111                 // 使用刚指定的配置项和数据显示图表。
    112                 myChart.setOption(option, true); 
    113             },
    114             error: function (XMLHttpRequest, textStatus, errorThrown) {
    115             }
    116         });
    117     };
    118     void function InitChart() {
    119         QueryChart();
    120     }();
    121     /*serie生成器*/
    122     function get_orient() {
    123         return 'vertical';
    124     };
    125     function get_legendRight() {
    126         return 10;
    127     };
    128 
    129     function serie_func(item_op) {
    130         var serie = [];
    131         var mmAvgPrice = {
    132             name: '月移动加权平均价', // item_op[i].ProjectName,//获取系列名称
    133             type: 'line',
    134             symbolSize: 15,
    135             tooltip: {
    136                 //trigger: 'item',
    137                 formatter: function (param) {
    138                     // 格式化成月/日,只在第一个刻度显示年份
    139                     var date = new Date(param.data.CreateTime);
    140                     var y = date.getFullYear();
    141                     var m = date.getMonth() + 1;
    142                     var d = date.getDate();
    143                     return [
    144                         '单价: ' + param.data.MMAVPrice + '<br/>',
    145                         '时间: ' + y + '-' + m
    146                     ].join('');
    147                 }
    148             },
    149             encode: {
    150                 x: 2,      // 表示维度 3、1、5 映射到 x 轴。
    151                 y: 25,              // 表示维度 2 映射到 y 轴。
    152                 tooltip: [3, 2, 4] // 表示维度 3、2、4 会在 tooltip 中显示。
    153             },
    154             itemStyle: {
    155                 color: 'red'
    156             }
    157         }
    158 
    159         serie.push(mmAvgPrice);
    160         for (var i = 0; i < item_op.length; i++) {  //根据后端传来的数据item_op的长度循环创建serie里面的data[],这里取的名字是item
    161             var item = {
    162                 name: get_serie_name(item_op[i]), // item_op[i].ProjectName,//获取系列名称
    163                 type: 'scatter',
    164                 symbolSize: 20,
    165                 data: [
    166                         {
    167                             value: [item_op[i].CreateTime, item_op[i].Price],//x,y轴对应的数据
    168                             name: item_op[i].CityName,
    169                             Amount: item_op[i].Amount,
    170                             Brand: item_op[i].Brand,
    171                             CreateTime: item_op[i].CreateTime,
    172                             ITEMSUBCLASS: item_op[i].ITEMSUBCLASS,
    173                             MaterialName: item_op[i].MaterialName,
    174                             Price: item_op[i].Price,
    175                             ProjectName: item_op[i].ProjectName,
    176                             SpecModel: item_op[i].SpecModel,
    177                             EnginAreaName: item_op[i].EnginAreaName,
    178                             CityName: item_op[i].CityName
    179                         }
    180                 ]
    181             }
    182             serie.push(item);
    183             
    184         };
    185 
    186         return serie;
    187     };
    188     function get_serie_name(item) {
    189         var qryPrice = $("input[name='qryPrice']:checked").val();
    190         var serie_name = "";
    191         if (qryPrice == 0) {
    192             serie_name = item.ProjectName;
    193         }else if(qryPrice == 1){
    194             serie_name = item.Brand;
    195         } else if (qryPrice == 2) {
    196             serie_name = item.ProjectName;
    197         } else if (qryPrice == 3) {
    198             serie_name = item.EnginAreaName;
    199         } else {
    200             serie_name = item.ProjectName;
    201         }
    202         return serie_name;
    203     }
    204     
    205 
    206 </script>    
  • 相关阅读:
    Linux下使用curl查看http请求各阶段耗时
    yum list查看版本
    【k8s】XX 修改ipvs模式
    域名访问时间 测试脚本
    关闭WINDOWS自动检测互联网络
    win10专业版安装VMware workstation pro 16时提示“setup failed to generate the ssl keys necessary to run vmware”笔记
    手动启动MegaRAID Storage Manager v17.05.02.01 for Linux
    Java基于POI实现excel任意多级联动下拉列表——支持从数据库查询出多级数据后直接生成【附源码】
    C# 后台POST数据及API接收简记
    Linux 安装pycharm,清除缓存,scp传输文件
  • 原文地址:https://www.cnblogs.com/hwubin5/p/12169633.html
Copyright © 2011-2022 走看看