百度EChart3初体验

这是我偷的图,你信吗?

由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK。至于说如何体现出来,官网的教程很详细。大家可以去看下。大概了解下用法就OK。

百度ECharts 3:http://echarts.baidu.com/index.html

订单数量走势图

其实还有很多,可以到官网中找。

下面是我进行操作的步奏,大家可以看下,做个参考。

ECharts初体验—01...

需要到官网下载最新的版本的js文件(完整版),其实只有一个,但是你要想出来一些好看的效果就应该把主题也下载好。

地址:http://echarts.baidu.com/download.html

其实只需要4步就OK。

  1. :划分一块区域用来显示图形;

  2. :初始化echart插件;

  3. :填充option中的数据data;

  4. :加载,装配数据到echart。

这样就OK了。其实最难的不是使用,而是如何将这个插件和自己的后台联系起来,比如数据应该展示那些,如何将数据json化之后传递过来。如何实现异步等……

ECharts初体验—02...

下面是MVC中一个简单的页面,只是为了将图表先展示出来。


/// <summary>
/// 折线图
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
    return View();
}

 <h2>Index</h2>
<div id="main" style="width: 600px;height:400px;"></div>
@*引人外部JS文件,下面的vintage,dark是主题。*@
<script src="~/Scripts/echarts/echarts.js"></script>
<script src="~/Scripts/echarts/vintage.js"></script>
<script src="~/Scripts/echarts/dark.js"></script>
<script>   
    //第一步;
    var myChart = echarts.init(document.getElementById('main'), 'dark');  //这就样
    //第二步;
  var  option = {
        title: {
            text: '堆叠区域图'
        },
      //气泡提示框,呈现更详细的数据。
        tooltip: {
            trigger: 'axis'
        },
      //图例,表述数据和图表的关联
        legend: {
            data: ['邮件营销']
        },
      //辅助工具箱,如添加标线,框选缩放.
        toolbox: {
            feature: {
                saveAsImage: {}
            }
        },
      //用于定义直角系的布局。
        grid: {
            left: '3%',
            right: '4%',
            bottom: '3%',
            containLabel: true
        },
      //坐标系中的X轴--类目录
        xAxis: [
            {
                type: 'category',
                boundaryGap: false,
                data: ["2016-10-12", "2016-10-13", "2016-10-14", "2016-10-15", "2016-10-16", "2016-10-17", "2016-10-18", "2016-10-19", "2016-10-20", "2016-10-21", "2016-10-22", "2016-10-23", "2016-10-24", "2016-10-25", "2016-10-26"]
            }
        ],
      //坐标系中的Y轴--数据值
        yAxis: [
            {
                type: 'value'
            }
        ],
      //数据列表,一个图表可能包含多个系列,每一个系列可能包含多个数据。格式为json的形式。
        series: [
            {
                name: '邮件营销',
                type: 'line',
                stack: '总量',
                areaStyle: { normal: {} },
                label: {
                    normal: {
                        show: true,
                        position: 'top'
                    }
                },
                data: [23, 45, 23, 11, 222, 234, 12, 34, 37, 50, 23, 45, 23, 11, 222]
            }          
        ]
    };
    //第三步 使用刚指定的配置项和数据显示图表。
  myChart.setOption(option);
</script>

其中的每一步都有解释,每一个名词都有各自的意义,大家可以了解下。至于每一个data,都是使用静态的json,后面会从后台传递数据。下面是这个的效果。

图呀---

ECharts初体验—03...

其实上面的数据都是静态的,很好的实现。但是对于我们实际的项目中都是从数据库中取到的数据,不可能是静态的,此时我们就需要将其json化,进行一定的转换。把数据从后面传递到前台,在进行操作。

dataList类


   public class DateList
{

    public IList<string> datetime { get; set; }

    public IList<int> ordernumber { get; set; }
}

控制器Controller


   [HttpGet]
public ActionResult ZhiXian()
{         
    return View();
}
[HttpPost, ActionName("ZhiXian")]
public ActionResult ZhiXianPost()
{
    var listData = new List<string>();
    var datetimes = DateTime.Now.AddDays(1);
    for (int i = 1; i <=15; i++)
    {
        listData.Add(datetimes.AddDays(-i).ToString("yyyy-MM-dd"));
    }
    listData.Reverse();
    var aa = new int[] { 23, 45, 23, 11, 222, 234, 12, 34, 37, 50, 23, 45, 23, 11, 222 };
    var data = new DateList()
    {
        datetime = listData,
        ordernumber = aa,
    };
    return Json(new{status=1,result=data});
}

视图View


   <h2>ZhiXian</h2>
<div id="main" style="width: 800px;height:400px;"></div>
@*引人外部JS文件*@
<script src="~/Scripts/echarts/echarts.js"></script>
<script src="~/Scripts/jquery-2.1.4.js"></script>
<script src="~/Scripts/echarts/vintage.js"></script>
<script src="~/Scripts/echarts/roma.js"></script>
<script>
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'), 'roma');  //这就
    $.post("/Home/ZhiXian", function (response) {
        if (response.status == 1) {
            console.log(response.result.datetime);
            console.log(response.result.ordernumber);
            var option = {
                title: {
                    text: '近10天订单数量分析图'
                },
                //气泡提示框,呈现更详细的数据。
                tooltip: {
                    trigger: 'axis'
                },
                //图例,表述数据和图表的关联
                legend: {
                    data: ['订单总量']
                },
                //辅助工具箱,如添加标线,框选缩放.
                toolbox: {
                    feature: {
                        saveAsImage: {}
                    }
                },
                //用于定义直角系的布局。
                grid: {
                    left: '3%',
                    right: '4%',
                    bottom: '3%',
                    containLabel: true
                },
                //坐标系中的X轴--类目录
                xAxis: [
                    {
                        type: 'category',
                        boundaryGap: false,
                        data: response.result.datetime
                    }
                ],
                //坐标系中的Y轴--数据值
                yAxis: [
                    {
                        type: 'value'
                    }
                ],
                //数据列表,一个图表可能包含多个系列,每一个系列可能包含多个数据。格式为json的形式。
                series: [
                    {
                        name: '订单总量',
                        type: 'line',
                        stack: '总量',
                        label: {
                            normal: {
                                show: true,
                                position: 'top'
                            }
                        },
                        areaStyle: { normal: {} },
                        data: response.result.ordernumber
                    }
                ]
            };
            myChart.clear();
            myChart.hideLoading();
            //// 使用刚指定的配置项和数据显示图表。
            myChart.setOption(option);
        } else {
            alert("图表请求不成功,请重新请求。");
        }       
    });
</script>

效果如下:

123

我们可以发现颜色和第二个的不一样,这个就是我们使用了主题,这个在获取dom元素的时候标记的。如下所示。

01
02

下面是一个饼状图的主要option,其余的不变;


myChart.setOption({
        series: [
            {
                name: '访问来源',
                type: 'pie',
                radius: '55%',
                data: [
                    { value: 400, name: '搜索引擎' },
                    { value: 335, name: '直接访问' },
                    { value: 310, name: '邮件营销' },
                    { value: 274, name: '联盟广告' },
                    { value: 235, name: '视频广告' }
                ]
            }
        ]
    });

扇形图

我一直相信,只要我一直走,就一定可以到达。虽然我不知道要到那里去...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容