Echarts动态数据折线图

2022年6月11日14:37:45

1.添加引用:

 <script src="~/Scripts/jquery-3.3.1.js"></script>
 <script src="~/incubator-echarts-master/dist/echarts.min.js"></script>

2.添加html区域

 <div id="main" style="width:100%;height:500px;"></div>

3.添加后台数据接口 原本想做成每次返回多个数据的 后来改成了一个

 [HttpPost]
        public ActionResult AsycData() {
            var result = GetNums();
            return Json(result, JsonRequestBehavior.AllowGet);
        }
        public List<int> GetNums() {
            List<int> result = new List<int>();
            Hashtable hashtable = new Hashtable();
            Random rm = new Random();
            int RmNum = 1;
            for (int i = 0; hashtable.Count < RmNum; i++)
            {
                int nValue = rm.Next(100);
                if (!hashtable.ContainsValue(nValue) && nValue != 0)
                {
                    hashtable.Add(nValue, nValue);
                    result.Add(nValue);
                }
            }
            return result;
        }

4.建立的window.onload把js操作放里面 这步很容易忘记

5.初始化Echarts

 var myChart = echarts.init(document.getElementById('main'));

6.初始化option 有一些参数写了注释 可以简单了解下

 var option = {
                title: {
                    text: 'echart练习'
                },
                tooltip: {},
                legend: {//显示标记 也就是一般左上角的提示哪个颜色是什么
                    data: ['销量']
                },
                dataZoom: [{
                    startValue:new Date()
                }, {
                    type: 'inside',
                    show: true,
                    filterMode: "filter"
                }],
                xAxis: {
                    data: [],//类目数据 柱状图每个数据柱的名称
                    offset: 0, //偏移量 多个y轴的时候用
                    position: "bottom", //x轴位置
                    type: "time",//设置x轴的类型 value数值轴 category类目轴 time时间轴 log对数轴
                    name: "时间",//坐标轴的名称
                    nameLocation: "end", //坐标轴名称显示位置。start middle center end
                    nameGap: 15, //坐标轴名称与轴线之间的距离。
                    nameRotate: null,//坐标轴名字旋转,角度值。
                    min: null,//坐标刻度的最小值
                    max: null,//坐标刻度的最大值
                    minInterval: 1 //自动计算的坐标轴最小间隔大小。 设置为1保证为整数
                },
                yAxis: {
                    show: true, //是否显示y轴
                    position: "left",//设置y轴的位置
                    type: "value",//设置y轴的类型 value数值轴 category类目轴 time时间轴 log对数轴
                },
                series: [{
                    name: '销量',
                    type: 'line',//设置绘制的图表类型 bar柱状图 line折线图 pie饼图 scatter散点图 effectScatter带涟漪效果的散点图(一般用于突出显示) radar雷达图 tree树图 treemap层级树图 sunburst旭日图 boxplot箱型图 candlestick k线图 heatmap热力图 map地图 parallel平行坐标系 graph关系图 sankey桑基图 funnel漏斗图(倒立金字塔)gauge仪表盘 pictorialBar象形柱图 themeRiver主题河流 custom自定义
                    data: []
                }]
            };

7.传入参数

 myChart.setOption(option); //这个以后会经常用到

8.设置循环获取数据并且放入折线图

 this.setInterval(function () {
                $.post("/Home/AsycData", {}, function (data) {
                    console.log(data[0]);
                    var data0 = option.series[0].data;
                    var x = [new Date(), data[0]];
                    data0.push({ name: x[0], value: x });
                    myChart.setOption({ series: option.series });
                })
            }, 5000)

9.这样就可以使用了

  • 作者:昵称全重复
  • 原文链接:https://blog.csdn.net/liuzishang/article/details/93598244
    更新时间:2022年6月11日14:37:45 ,共 1943 字。