使用Echarts总结之——使用柱状图和地图与后台数据交互

一、引入js

当然首先肯定是要引入相关的echart,

简单的开发基本上一个<script language="javascript" type="text/javascript" src="${base}/echarts/dist/echarts-all.js"></script>就足够了

至于需要哪些echart相关文件放入到项目中,通过官网下载echarts(这里是echarts-2.27),将build目录下所有文件拷贝到项目中,然后引用echarts-all.js就可以

二、开发

      1》开发柱状图:

                1、jsp或html页面,写一个存放图的地方


                           如:<div id="myEchart" style="height:500px;"></div>


            2、js内容:主要也就是调用主要的option,这个可以直接从Echat自带的实例中获取,用哪个取哪个


                        如柱状图例子:

                                var myChart,option;

                                function queryDataTest(){

                                              //获取图表位置

                                              myChart = echarts.init(document.getElementById("myEchart"));

                                              option = {..........}//这里内容可以直接从Echat自带的列子中取

                                              myChart.setOption(option);//将图表内容格式内容放入到myChart位置
                                              myChart.hideLoading();  
                                              getChartData();//aja后台交互

                                }


                               //后台交互

                              function   getChartData(){

                                       //获得图表的options对象
                                       var options = myChart.getOption();


                                       var param1 = $("#param1 ").val();
                                       var param2= $("#param2").val();

                                       var _data = {"param1":param1,.....};这里可以加请求的参数

                                        //通过ajax获取数据
                                       $.ajax({

                                                   type:"post",

                                                   async:false,

                                                   url:base + "/monitor/RegUser_test.do",//请求路径

                                                  dataType:"json",//返回数据形式为json

                                                  data:_data,

                                                  success:function(result){

                                                             if(result){

                                                                      options.legend.data = result.legend;  //legend赋值数据

                                                                      options.xAxis[0].data=  result[0].xdata;//x轴赋值数据

                                                                      options.series[0].data= result[0].data;//y轴赋值数据

                                                                      myChart.hideLoading(); 

                                                                      myChart.setOption(options);

                                                             }

                                                   },

                                                  error:function(errorMsg){
                                                             alert("图表请求数据失败啦!");
                                                             myChart.hideLoading();
                                                   }

                                       })

                              }


                      

               3.java 后台代码

                                 List<EchartData> echartDataList = new ArrayList<EchartData>();

                                 EchartData echart = new EcharData();

                                  echart.setLegend("增长量");

                                  echart.setXdata(new ArrayList<String>(Arrays.asList("北京","天津".................)));//里面值填充数组 datas = new String[]{"北京","天津"....}

                                  echart.setData(new ArrayList<Integer>(Arrays.asList(2,7,8....)));//里面值填充数组 datas = new Integer[]{2,7,8.....}

                                  echartDataList.add(echart);

                                  return JSONArray.fromOjbect(echartDataList);//将值一json格式返回

                       EchartData.java 代码

                                      private Stringlegend;

                                      private List<String> xdata;

                                      private List<Integer>data;

                                      public EchartData(){}

                                      public EchartData(String legend, List<String> xdata, List<Integer> data){

                                                    this.legend = legend;

                                                    ......

                                      }

                                      生成get /set  



 OK 效果图:


        1》开发地图:

                步骤都一样,赋值的时候

                           关键是在赋值的时候,地图 的数据是  data:[{name:'北京',value:20}............]这样的形式name和value,并且省直辖市的名称必须按照自带的名称一样,不然数据出不来,顺序可以随便排序

                          注:省份字段名(北京, 天津, 上海, 重庆, 河北, 河南, 云南, 辽宁, 黑龙江, 湖南, 安徽, 山东, 新疆, 江苏, 浙江, 江西, 湖北, 广西, 甘肃, 山西, 内蒙古, 陕西, 吉林, 福建, 贵州, 广东, 青海, 西藏, 四川, 宁夏, 海南, 台湾, 香港, 澳门)

                             java后台代码:可以用一个list封装数据

                               List<DataAnlysPicDomain>  dataAnlysList = regUserService.getDataAnlysList(参数);

                              JSONArray.fromObject(dataAnlysList);


                             DataAnlysPicDomain.java

                                         private String name;

                                         private Integer value;

                                         get set方法

                                在ajax请求直接

                                     success:function(result){

                                                  if(result){
                                                       options.series[0].data = result;//赋值
                                                        myChart.hideLoading();  
                                                        myChart.setOption(options);
                                                     }

                                      }

                           

           

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
可以参考以下步骤: 1. 安装 Django 和 echarts ```bash pip install Django pip install echarts-python ``` 2. 创建 Django 项目和应用 ```bash django-admin startproject echarts_demo cd echarts_demo python manage.py startapp charts ``` 3. 在 `settings.py` 中添加应用和静态文件路径 ```python INSTALLED_APPS = [ ... 'charts', ] ... STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] ``` 4. 在 `charts/views.py` 中编写视图函数 ```python from django.shortcuts import render from echarts import Echart, Bar, Legend, Axis def bar_chart(request): data = [ ['A', 10], ['B', 20], ['C', 30], ['D', 40], ['E', 50], ] chart = Echart('Bar Chart', 'Test') chart.use(Bar('test', [v[1] for v in data])) chart.use(Legend(['test'])) chart.use(Axis('category', 'bottom', data=[v[0] for v in data])) return render(request, 'charts/bar.html', {'chart': chart}) ``` 5. 在 `charts/urls.py` 中添加 URL 路由 ```python from django.urls import path from . import views urlpatterns = [ path('bar/', views.bar_chart, name='bar_chart'), ] ``` 6. 在 `templates/charts/bar.html` 中编写 HTML 模板 ```html {% extends 'base.html' %} {% block content %} <div id="chart" style="width: 800px; height: 600px;"></div> {% endblock %} {% block script %} <script src="{% static 'echarts.min.js' %}"></script> <script> var chart = echarts.init(document.getElementById('chart')); chart.setOption({{ chart.json }}); </script> {% endblock %} ``` 7. 在 `static/echarts.min.js` 中添加 echarts 的静态文件 可以从 echarts 的官网下载最新版的 echarts.min.js 文件,也可以使用以下命令下载: ```bash wget https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js -P static/ ``` 8. 运行 Django 项目 ```bash python manage.py runserver ``` 9. 在浏览器中访问 `http://127.0.0.1:8000/charts/bar/`,将会显示一个柱状图。 注意:以上代码仅为示例,实际应用中需要根据具体需求进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶半欲缺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值