码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 161_可视化_Power BI 复刻 GitHub 贡献热力图


    161_可视化_Power BI 复刻 GitHub 贡献热力图

    一、背景

    在 GitHub 上,有用户的贡献度的热力图如下:

    161-1

    Power BI 公共 web 效果:https://demo.jiaopengzi.com/pbi/161-full.html

    我们使用 Power BI 来复刻一下,如下:

    161-8

    二、实现过程

    1、依赖

    • 上述热力图是基于日期维度的,所以日期表是必备的,且需要按照我们设计的日期表才能实现(参见:https://jiaopengzi.com/2635.html);可见在我们的 Power BI 项目中日期表的重要性。
    • 三方视觉对象 HTML Content

    161-3

    2、DAX

    实现热力图的度量值就三个,如下图。

    161-4

    Ⅰ、SVG_heat_map_type

    控制热力按照自然年显示,还是按照累计年显示。

    SVG_heat_map_type = SELECTEDVALUE('热力图'[id], 0)

    Ⅱ、SVG_measure

    业务指标度量值,在使用当前模板的时候需要把自己业务的度量值按照如下方式写入。

    SVG_measure = [0001_销售金额]

    Ⅲ、SVG_html

    实现可视化的核心度量值,使用 DAX 构造 SVG 。

    只需要设置如下参数即可。

    • id:请勿修改。
    • left:区间左边界,不包含。
    • right:区间右边界,包含。
    • display:最终显示的文本。
    • color:热力图图例每个格子的颜色。

    如上,除了 id 不能更改以外,其他都可以按照自己的需求修改。

    建议只需要修改 left、right、display 三个字段即可,颜色就用当前的默认颜色。

    SVG_title:图表标题,如果不需要标题则留空。

    161-5

    SVG_html =
    /*业务设置-开始++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
    VAR SVG_legend_text_table =
    DATATABLE (
    "id", INTEGER,"left", INTEGER,"right", INTEGER,"display", STRING,"color", STRING,
    {
    { 5, 0, 0, "0", "#ebedf0" },
    { 4, 0, 10000, "(0,10000]", "#9be9a8" },
    { 3, 10000, 50000, "(10000,50000]", "#40c463" },
    { 2, 50000, 100000, "(50000,100000]", "#30a14e" },
    { 1, 100000, 99999999, ">100000", "#216e39" }
    }
    )
    VAR SVG_title = "日维度销售金额热力图" //图表标题,如不需标题留空 "" 。历史 | 目标 | 预测差异分析
    /*业务设置-结束++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
    折叠

    剩余DAX 过长,请在:https://jiaopengzi.com/2828.html 查看。

    161-6

    当然我们也用 Power BI 三方视觉来做一个对比,根据需要选择使用。

    161-7

    三、总结

    1、在前面之前的文章(https://jiaopengzi.com/2796.html)我们已经使用 DAX + SVG 来实现一些商业图表了。

    2、在 Power BI 中是 SVG 不足之处在于图表本身的交互,但更多商业图表其实出现在最终报告中,也可以忽略这一点。

    3、日期表的原始设计很重要。

    附件下载

    https://jiaopengzi.com/2828.html

    视频课

    https://jiaopengzi.com/all-course

    by 焦棚子

  • 相关阅读:
    SpringSecurity框架学习
    用帝国主义竞争算法(ICA)求解旅行商问题(TSP)(Matlab代码实现)
    全球回收标准GRS认证 难不难?
    nodejs+vue流浪猫狗救助领养elementui
    QSharedMemory使用详解
    JWT认证漏洞攻击详解总结
    微软出品自动化神器Playwright,不用写一行代码(Playwright+Java)系列(一) 之 环境搭建及脚本录制
    springboot+vue+nodejs+java卤菜品销售商城系统
    【Vue】style和class 列表渲染 使用v-for进行循环 监控失效 双向数据绑定 过滤案例 事件修饰符
    [PAT练级笔记] Basic Level 1018 锤子剪刀布
  • 原文地址:https://www.cnblogs.com/jiaopengzi/p/16497492.html
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号