136_Power BI 自定义矩阵热力图

博主焦棚子在PowerBI Report Server遇到非原生视觉问题后,自制热力图教程。使用PowerQuery生成数据,通过DAX实现颜色映射,演示了如何根据RGB规律创建度量,适用于各类热力图表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博客:www.jiaopengzi.com

焦棚子的文章目录
请点击下载附件

一、背景

在前几天在pbirs自定义登录后,发现一个问题就是非Power BI原生的视觉无法显示,改回AD登录又可以了。目前还没有找到原因。

关于热力图市场里面有一些,因为pbirs自定义登录的问题还没有解决,于是想了想自己用原生做一个吧。

1、视频效果

[video width=“1312” height=“752” mp4=“https://jiaopengzi.com/wp-content/uploads/2020/03/136_1.mp4”][/video]

2、静图效果

3、power bi report server效果

请点击链接查看: https://jiaopengzi.com/go/136/

二、数据源

数据源非常简单,用power query随机一个100个数。刚好10*10的一个矩阵。

注意自己再建立这样矩阵时的关键:Row、Col

三、上DAX

1、DAX前说明

关键度量color_map,构造RGB值,关于颜色RGB的组成需要自己先科普一下(链接)。

注意观察框选出来颜色变化的规律和RGB值变化的规律,其他颜色同理。

于是根据这样的规律就能构造DAX度量了。

2、DAX

color_map = 
var r=IF('01Measure'[sumofid]=2,INT(200*(1-'01Measure'[sumofvalue]/100))+20,250)
var g=INT(100*(1-'01Measure'[sumofvalue]/100))+140//222,239
var b=IF('01Measure'[sumofid]=1,INT(200*(1-'01Measure'[sumofvalue]/100))+20,250)
var d=","
return
"RGB("&r&d&g&d&b&")"

四、总结

1、案例方法做热力图表、热力矩阵、热力月份等都适合,后面有时间再写;

2、首先要找到一个合适自己的颜色,然后确定颜色的最深和最浅,观察RGB的规律,根据规律建立DAX模型,最后书写度量。

3、另外一个关键是原生视觉,在写热力图图例的时候,需要配合建立的矩阵来做,这个需要一定的技巧,见度量color_cutline

by焦棚子

焦棚子的文章目录

### 绘制物种分布热力的方法与工具 绘制物种分布热力是一种常见的数据可视化需求,尤其在生物信息学领域。以下是使用编程语言或工具实现这一目标的具体方法。 #### 使用Matplotlib绘制热力 Matplotlib是一个功能强大的Python绘库,能够创建高质量的热力。通过`matplotlib.pyplot.imshow`或`seaborn.heatmap`(Seaborn是基于Matplotlib的高级接口),可以轻松生成热力[^1]。 以下是一个使用Matplotlib绘制热力的示例代码: ```python import matplotlib.pyplot as plt import numpy as np # 创建一个示例矩阵,表示物种分布数据 data = np.random.rand(10, 10) # 假设有10个物种和10个样本点 # 绘制热力 plt.figure(figsize=(8, 6)) plt.imshow(data, cmap='viridis', aspect='auto') plt.colorbar(label='丰度') # 添加颜色条以表示数值范围 plt.title('物种分布热力') plt.xlabel('样本点') plt.ylabel('物种') plt.xticks(range(10), [f'Sample {i+1}' for i in range(10)]) plt.yticks(range(10), [f'Species {i+1}' for i in range(10)]) plt.show() ``` #### 使用Seaborn绘制热力 Seaborn是一个更高层次的可视化库,其`heatmap`函数提供了更简洁的API,适合快速生成热力。 以下是一个使用Seaborn绘制热力的示例代码: ```python import seaborn as sns import pandas as pd import numpy as np # 创建一个示例矩阵 data = np.random.rand(10, 10) df = pd.DataFrame(data, index=[f'Species {i+1}' for i in range(10)], columns=[f'Sample {i+1}' for i in range(10)]) # 绘制热力 plt.figure(figsize=(8, 6)) sns.heatmap(df, cmap='coolwarm', annot=True, fmt='.2f', cbar_kws={'label': '丰度'}) plt.title('物种分布热力') plt.show() ``` #### 使用R语言绘制热力 R语言在生物信息学领域广泛使用,尤其是`heatmap.2`函数,能够生成复杂的热力并支持多种自定义选项[^3]。 以下是一个使用`heatmap.2`绘制热力的示例代码: ```r library(gplots) # 创建一个示例矩阵 data <- matrix(runif(100, min=0, max=1), nrow=10, ncol=10) rownames(data) <- paste0("Species", 1:10) colnames(data) <- paste0("Sample", 1:10) # 绘制热力 heatmap.2(data, col=colorRampPalette(c("blue", "white", "red"))(100), scale="none", trace="none", dendrogram="both", main="物种分布热力", key=TRUE, keysize=1.5) ``` #### 其他工具与注意事项 除了上述编程语言外,还可以使用其他工具如Tableau、Power BI等进行热力绘制。然而,这些工具更适合非编程用户,而编程语言则提供了更高的灵活性和可定制性。 在实际应用中,需注意以下几点: - 数据预处理:确保输入矩阵的格式正确,例如行代表物种,列代表样本点。 - 颜色映射:选择合适的颜色方案以突出数据特征。 - 标签清晰:为热力添加详细的标签和标题,以便读者理解数据含义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值