欢迎使用CSDN-markdown编辑器

谈一谈我最近做统计的感受

统计页面,主要的目的就是对后台给的数据做一个好的展示。就不得不说一下,图标控件:


Echarts

百度的Echarts,去年也有一些使用,只不过比较少,因为当时觉得自带的主题几级提示不符合我们的色调,颜色这种东西如果没有设计把控还是比较难的。但是,等待着Echarts3.0来了,我们团队觉得这个色系和操作符合我们的系统,于是将所有的产品都改成了Echarts,最开始使用的时候,也是require来请求某个图表的js进行使用,后来统一进行反而觉得复杂了,有重新走了直接调用的版本。接下来我说一下,我对Echarts里面常用option的意思。

Option


var option = {
      baseOption:{//用来放默认的配置属性
        title: {
          show:false,//是否显示图表的标题
          text: '',//图表的标题
          left:'center'//标题所在位置
        },
        tooltip: {//图表的提示工具
          show: true,//是否显示提示框
          formatter:'{b0}: {c0}<br />{b1}: {c1}'//提示框的展示形式,还可以写js方法做处理
        },
        legend: {//图例
          itemGap:5,//图例每项之间的间隔。横向布局时为水平间隔,纵向布局时为纵向间隔
          data: ['图例1','图例2'],//假如下面series里还有名称的话要和图例的名称顺序保持一致
          bottom:'0%',
        },
        color:['#aaa','#bbbb'],//颜色配置,不管是什么图颜色从开始到结束的颜色值
        grid: {//图表的位置(好比一个div)
          left: '3%',//图表距离左侧3%
          right: '4%',//图表距离右侧3%
          bottom: '18%',//图表距离底部3%
          top:'12%',//图表距离上部3%
          containLabel: true//grid 区域是否包含坐标轴的刻度标签,在无法确定坐标轴标签的宽度,容器有比较小无法预留较多空间的时候,可以设为 true 防止标签溢出容器。
        },
        xAxis: [{
          type: 'category',//X为类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据
          boundaryGap: false,//坐标轴两边留白也可写做 ['20%', '20%']
          axisLabel:{//坐标轴刻度标签的相关设置。
            interval:1,//坐标轴刻度标签的显示间隔
            rotate:20,//坐标轴名字旋转读书
          },
          data: ['数据1','数据2'],//类目的值
        }],
        yAxis: [{
          type: 'value'//X为数值轴
        }],
        series:[{
            type:'line',//图表类型,折线,bar,柱状等等,
            data:[{
                name:'图例1',//图例名字1
                value:[2,5]//[数据1的值,数据2的值]
               },{
                name:'图例2',//图例名字2
                value:[5,8]//[数据1的值,数据2的值]
           }]
        }]
      },
      media: [//用于响应式的图表的样式,东西跟上面的是一样的,不过多了一个query用来限制宽度高度
        {
          query: {
            maxWidth: 625,//宽度小于625时会走这里面的option设置,覆盖上面默认的
          },
          option:{
            title: {
              textStyle:{
                fontSize:13,//这是以图表的标题为例子
              }
            },
          }
        },
      ]
    };

hightchart.js和chart.js用到的少了,但是hightchars容易上手,照着他的实例来就没问题,这俩就不做解释了。

过程中遇到的问题

  • 说个苹果上的问题,当你用了响应式布局以后,手机上会用着很卡顿,需要在css上加上一句
    body{ -webkit-text-size-adjust:none; -webkit-overflow-scrolling:touch;}
    /*这样就可以有效的解决掉,手机上卡的问题。*/
  • 当数据繁重,需要处理多时,页面的请求会变得很慢,这时候就是需要队列来处理了
    (function($) {
        // 声明一个jquery空对象,这个对象用来存放我们的队列
        var ajaxOrder = $({});
        $.ajaxOrder = function( opts ) {
            var jqXHR,
                dfd = $.Deferred(),
                promise = dfd.promise();
            // 执行我们的ajax查询操作
            ajaxOrder.queue( doRequest );
            // 添加中断ajax方法
            promise.abort = function( statusText ) {
                // 判断ajax是否在运行,如果有正在运行ajax,就将其结束掉ajax
                if ( jqXHR ) {
                    return jqXHR.abort( statusText );
                }
                // 将执行完毕的ajax从队列中删除
                var queue = ajaxOrder.queue(),
                    index = $.inArray( doRequest, queue );
                // 判断队列中是否存在执行完毕ajax,如有就将其从队列中剔除
                if ( index > -1 ) {
                    queue.splice( index, 1 );
                }

                // 最后将ajax状态改为失败,rejectWith()作用相当于reject()
                dfd.rejectWith( ajaxOpts.context || opts, [ promise, statusText, "" ]);
                return promise;
            };
            // 执行我们的ajax查询操作方法
            function doRequest( next ) {
                jqXHR = $.ajax( opts )
                    .done( dfd.resolve )
                    .fail( dfd.reject )
                    .then( next, next );
            }
            return promise;
        };
        })(jQuery);
    //请求调用
    $.ajaxQueue({
        url: url,
        dataType: "json",
        timeout:5000,//超时5秒自动结束,并且返回status为timeout
    }).done(function(data){
          callback(data,id);
    }).fail(function(data){
          var _data = {
            status: "fail"
    }   
        if (data.statusText == 'timeout') {     
            _data.status = 'timeout';    
        }
        callback(_data,id);
    })
使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值