精华内容
下载资源
问答
  • 2020-08-25 14:22:27

    之前,我们分享过 用集操作实现树状图的数据下钻。其实,对于 2019.2 及以上版本的 Tableau 用户,利用其新功能 参数操作 也能便捷的实现图表中数据的下钻。

    Tips:集和参数都可以实现下钻。但从概念上来说,集和数据源紧密相关,它会随着数据源的更新而更新;参数则独立于数据源,它是人为引入的值,不会随着数据源的更新而更新,因此,参数的应用相对来说更灵活一些。

    如下柱形图,鼠标单击任何大类的柱形,就可以立刻下钻查看它对应的子类别。

    具体该如何实现呢?今天我们来分享方法,

    为方便学习,栗子使用 Tableau 自带的“示例-超市”数据源。掌握栗子方法后,数据粉可尝试使用自己的数据。

    --------------------------------------------------------------------------------------------------->>

    具体步骤如下:

    1、创建条形图

    更多相关内容
  • 这是目前最新从百度地图开放平台通过API拉取的省、市、区县三级数据,用于jsondata数据地图开发!!!!
  • ECharts实现数据下钻

    2021-12-17 16:59:28
    1. 初始化图表 2.绑定点击事件 3.拼好要下钻的option数据 4.重新渲染ECharts

    先讲原理:

    1. 初始化图表
    2. 绑定点击事件
    3. 拼好要下钻的option数据
    4. 重新渲染ECharts

     完整代码

    <template>
      <!-- 月度项目汇总报表 -->
      <div class="box">
        <h2>数据下转模板</h2>
        <!-- 全局 id 不可重复 -->
        <div id="chart"></div>
      </div>
    </template>
    <script>
    import * as echarts from "echarts";
    export default {
      name: "chart",
      data() {
        return {
          chartData: [], //源数据
          stack: [], // 数据栈  用于数据下转
        };
      },
      methods: {
        getData() {
          // ...请求数据省略
    
          // 数据格式
          let data = [
            {
              label: "金额",
              type: "line",
              color:"#ed7d31",
              chartData: [
                {
                  name: "位置1",
                  value: 80,
                  children: [
                    {
                      name: "v11.0",
                      value: 10,
                    },
                    { name: "v10.0", value: 5 },
                    { name: "v9.0", value: 4 },
                    { name: "v8.0", value: 3 },
                    { name: "v7.0", value: 2 },
                    { name: "v6.0", value: 1 },
                  ],
                },
                {
                  name: "位置2",
                  value: 20,
                },
                {
                  name: "位置3",
                  value: 30,
                },
                {
                  name: "位置4",
                  value: 80,
                },
                {
                  name: "位置5",
                  value: 18,
                },
              ],
            },
            {
              label: "采购金额",
              type: "bar",
              color:"#5470c6",
              chartData: [
                {
                  name: "位置1",
                  value: 80,
                  children: [
                    {
                      name: "v11.0",
                      value: 10,
                      children: [
                        { name: "w1", value: 10 },
                        { name: "w2", value: 800 },
                        { name: "w3", value: 700 },
                        { name: "w4", value: 20 },
                        { name: "w5", value: 500 },
                        { name: "w6", value: 40 },
                      ],
                    },
                    {
                      name: "v10.0",
                      value: 8,
                    },
                    { name: "v9.0", value: 7 },
                    { name: "v8.0", value: 6 },
                    { name: "v7.0", value: 5 },
                    { name: "v6.0", value: 4 },
                  ],
                },
                {
                  name: "位置2",
                  value: 21,
                },
                {
                  name: "位置3",
                  value: 31,
                },
                {
                  name: "位置4",
                  value: 81,
                },
                {
                  name: "位置5",
                  value: 19,
                },
              ],
            },
          ];
          this.chartData = data;
          console.log(this.chartData, "源数据");
          this.init(); //初始化echarts
        },
        init() {
          //   一、 初始化图表
          // 拼series数据
          let seriesData = this.spellData(this.chartData, "chartData");
          console.log(seriesData, "拼好的series数据");
    
          let option = {
            // 分类
            legend: {
              top: -5,
              left: 35,
            },
            // 提示
            tooltip: {
              trigger: "axis",
            },
            // 距离
            grid: {
              top: 25,
              left: 30,
              right: 5,
              bottom: 25,
            },
            xAxis: {
              data: this.chartData[0].chartData.map((item) => item.name), //以第一个数据为标准,因为name是一致的
            },
            yAxis: {},
            // series 数据
            series: [...seriesData],
            // 默认不显示返回按钮
            graphic: [
              {
                type: "text",
                left: 0,
                top: 1,
                style: {
                  text: "",
                  fontSize: 16,
                },
              },
            ],
          };
          let myChart = echarts.init(document.getElementById("chart"));
          myChart.setOption(option);
    
          //  二、 数据下砖
          // 记录栈
          this.stack = [];
          this.stack.push(option);
          // 点击事件
          let that = this;
          myChart.off("click"); // 点击之前 先把上一次的解绑,避免两次点击
          myChart.on("click", function (event) {
            // 数据下钻
            that.dataDrillDown(event);
          });
          //   自适应屏幕
          window.onresize = function () {
            myChart.resize();
          };
        },
    
        // 数据下转
        dataDrillDown(event) {
          console.log(event, "event");
          /* 
            数据下转的查询数据规则有两种
              1. 查询亲孩子(自己符合规则的数据)
              2. 查找所有孩子(只要name一致 并且也有children就一起渲染)  * 默认
          */
          //  这里使用的是第二种,如果想使用第一种 在数据下转前 查询父数据内符合规则的即可,而不是遍历全部的数据
          // const parentData = that.chartData.filter((item) => {
          //   if (item.type == event.seriesType && item.label == event.seriesName) {
          //     return item;
          //   }
          // });
    
          //  1.查找子数据 (这里拿数据的name进行查询的)
          let childrenData = [];
          function findChildren(arr, event, parentItem) {
            arr.filter((item) => {
              if (
                item.name === event.name &&
                item.children &&
                item.children.length != 0
              ) {
                item.label = parentItem.label;
                item.type = parentItem.type;
                item.color = parentItem.color;
                childrenData.push(item); //查到的children
              } else if (item.children && item.children.length != 0) {
                findChildren(item.children, event, parentItem);
              }
            });
          }
          this.chartData.forEach((item) => {
            findChildren(item.chartData, event, item);
          });
    
          if (childrenData.length == 0) return false; //如果查不到证明没有 直接return
          console.log(childrenData, "查到的所有符合规则数据");
          // 2.拼子series数据
          let childrenSeriesData = this.spellData(childrenData, "children");
          console.log(childrenSeriesData, "拼好的子series数据");
    
          // 3.初始化下转数据
          let option = {
            // 分类
            legend: {
              top: -5,
              left: 35,
            },
            // 提示
            tooltip: {
              trigger: "axis",
            },
            // 距离
            grid: {
              top: 25,
              left: 30,
              right: 5,
              bottom: 25,
            },
            xAxis: { data: childrenData[0].children.map((item) => item.name) },
            yAxis: {},
            series: [...childrenSeriesData],
          };
    
          this.stack.push(option); //记录栈
          let that = this;
          // 下转后的返回按钮
          option.graphic = [
            {
              type: "text",
              left: 0,
              top: 1,
              style: {
                text: "返回",
                fontSize: 16,
              },
              onclick: function (event) {
                // 返回到上一个
                let option = that.stack[that.stack.length - 2];
                if (!option) return false; // 到头了就停止执行
                // "如果是最前面一级  就不显示返回按钮"
                if (that.stack.length == 2) {
                  option.graphic = [
                    {
                      style: {
                        text: "",
                      },
                    },
                  ];
                }
                myChart.setOption(option); //重新渲染
                //点击一次返回 往栈里面删除一个
                that.stack.pop();
              },
            },
          ];
          let myChart = echarts.init(document.getElementById("chart"));
          myChart.setOption(option, true);
        },
        // 拼数据
        spellData(arr, dataName) {
          let seriesData = [];
          arr.forEach((item, index) => {
            if (!item[dataName]) item[dataName] = []; //边缘处理
            let obj = {
              color: item.color,
              /* 核心数据 */
              name: item.label,
              type: item.type,
              data: item[dataName].map((item) => item.value),
              /* 其他数据 */
              label: {
                show: true,
                position: "inside",
                fontSize: 18,
              },
              // 过渡时间和动画
              animationDurationUpdate: 500,
              universalTransition: {
                enabled: true,
                divideShape: "split",
              },
            };
            seriesData.push(obj);
          });
          return seriesData;
        },
      },
      mounted() {
        this.getData();
      },
    };
    </script>
    <style scoped lang='scss'>
    .box {
      position: absolute;
      width: 100%;
      height: 100%;
    }
    #chart {
      width: 100%;
      height: 90%;
    }
    </style>

    展开全文
  • 对应外键和joined 字段,在非native query模式可以实现自动展现对应数据,使用joined字段可以避免使用外键,更适合生产环境 带dashboard 通过自定义click 事件也可以实现 dashboard模式需要注意,以native query...

    简单总结

    • metabase 的tile map/瓦片地图模式通过地图缩放可以实现Drill Through
    • 对应外键和joined 字段,在非native query模式下可以实现自动展现对应数据,使用joined字段可以避免使用外键,更适合生产环境
    • 带dashboard 通过自定义click 事件也可以实现

    dashboard模式需要注意,以native query为例,要跳转的parameter类型要正确,如下图数字类型的参数必须选择number。
    在这里插入图片描述

    dashboard的配置如下:
    在这里插入图片描述
    注意右下角的Pass value to…

    展开全文
  • echarts各省json数据-用于数据下钻
  • 通过ECharts 实现数据下钻

    千次阅读 2020-08-22 16:11:56
    先展示所有年份数据,然后在下到该年的月份数据 核心代码: 其实现思路,主要是通过echarts的点击事件,当点击了当前年份柱状图时,获取当前的年份数字,然后调用后台接口拿到该年份的月份数据,然后重新给 ...

    效果图:

    先展示所有年份数据,然后在下钻到该年的月份数据 

    核心代码:

        其实现思路,主要是通过echarts的点击事件,当点击了当前年份柱状图时,获取当前的年份数字,然后调用后台接口拿到该年份的月份数据,然后重新给 echarts 设置 options即可

    <template>
      <div :class="className" :style="{height:height,width:width}" />
    </template>
    
    <script>
    import echarts from 'echarts'
    import resize from './mixin/resize'
    import { getCountTombsByMonthData, getStatisticsOfTombsByYearData } from '@/api/stats'
    export default {
      mixins: [resize],
      props: {
        className: {
          type: String,
          default: 'chart'
        },
        width: {
          type: String,
          default: '100%'
        },
        height: {
          type: String,
          default: '400px'
        },
        title: {
          type: String,
          default: ''
        },
    
    展开全文
  • 我们分享过 用集操作实现树状图的数据下钻 。其实,对于 2019.2 及以上版本的 Tableau 用户,利用其新功能 参数操作 也能便捷的实现图表中数据下钻。 Tips:集和参数都可以实现下钻。但从概念上来说,集和数据源...
  • 主要介绍了在vue中使用echars实现上浮与下钻效果,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考
  • VUE echarts中国地图带下钻带返回带数据返回
  • echarts全国和省级地图下钻,以及各种可视化数据图形,支持全国下钻到省级,点击省级自动切换到省级下数据
  • 高德地图实现全国(省市区,支持穿透)数据分布图,支持世界国省市区的地图显示,支持上下级,多级透,自定义数据源,自定义鼠标tip html提示信息,样式,根据高德地图修改,世界(各国:暂时定为中国),全国,省市...
  • 如题,echarts3 如何实现全国地图下钻到省市级地图数据????请指教,谢谢。
  • 下钻:从当前数据展开一层数据。例如:(某数据的分类下面分为品名)从分类列表展开到品名列表。 上钻、下钻统称钻取。 切片:展现同一层面的数据。如上述的产品。 转轴:这些应该属于查询、展现范畴 如下:...
  • 该资源可以实现地图下钻省市县三级,里面有具体的json、js文件,源码全包含
  • 史上最全的map数据,三级数据下钻,全国->省->市,全国->直辖市->县级市 例如:第一级市全国地图,一级为北京地图数据,再一级为通州区数据。珍藏版,花费了很久很久才整理的最全最实用的的资料。做地图开发,不...
  • 数据粒度的上卷和下钻 上卷 数据的汇总聚合,细粒度到粗粒度的过程,会无视某些维度 下钻 数据明细,粗粒度到细粒度的过程,会细化某些维度 案例 select * from table group by A; select * from table group ...
  • 特别提醒:由于要获取json文件,需要运行在服务器,才能看到效果。)利用echarts插件实现的中国省市区三级地图切换。主要采用单击进入下级地图,双击或者右键点击“返回上一级”地图。资源里面包括详细的实现源码...
  • echart的省市地图带数据显示. 可下钻市区. 简单的带模拟后台数据. 前端直接嫁接使用.
  • 地图资源省市区下钻数据json
  • 数据挖掘-上卷下钻

    千次阅读 2020-05-30 19:45:16
    它包括向钻取(Drill-down)和向上钻取(Drill-up)/上卷...探(drill-down):探是上卷的逆操作,它是沿着维的层次向,查看更详1653细的数据数据挖掘(上述图片很清晰直观。--分享) ...
  • echart地图下钻数据.rar

    2019-12-13 09:51:36
    echarts地图下钻(包含钓鱼岛信息)亲测可以正常使用。有问题可以留言
  • echarts地图下钻(全国、省、市)多级下钻,用webstorm导入项目,启动即可呈现效果.
  • echarts3山东省地图动态获取数据下钻区县功能,并贴上自己程序中动态获取拼接数据的逻辑实现了地图下钻区县的功能展示。
  • echarts_extendsMap0302 基于echarts,地图数据展示,点击地图下钻(只下钻到省市) 仅供学习参考哦。
  • 基于OpenGL图形库和VC++6.0开发平台,从系统目标要求、体系结构和功能模块等几方面设计和开发了基于数据的三维地质建模及可视化系统3DGMS,实现了地层、矿体、断层、地表和巷道等三维模型的创建与可视化显示,以及...
  • echarts地图下钻功能demo,提供安徽各地市功能,下级到区县,下载解压后打开html可查看
  • 主要介绍了vue使用高德地图点击下钻 上浮效果的实现思路,本文以浙江省为例通过实例代码给大家介绍的非常详细,需要的朋友可以参考
  • echarts实现河北地图下钻,可下钻到县级。请使用开发工具打开,直接打来浏览jquery加载json文件会有问题,小白一枚,欢迎大神指导。
  • 上钻、下钻

    2021-09-07 16:44:08
    上钻、下钻统称钻取 1、上钻: 从当前数据往上回归到上一层数据。例如:(某数据的分类下面分为品名)从品名列表收拢到分类列表。 2、下钻: 从当前数据展开一层数据。例如:(某数据的分类下面分为品名)从...
  • 针对煤矿用普通中小型回转钻机的随测斜系统姿态数据无法在线上传的...试验结果表明,该离线式数据同步方法使钻杆数据和姿态数据实现了同步,能够在不改动钻机结构的前提充分满足普通中小型回转钻机的随测斜需求。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,944
精华内容 19,577
关键字:

数据下钻

友情链接: 1126.rar