PowerBI中面积图标记旁显示PID文本及合并图表的技术问询
图表展示

图表说明
该可视化图表的Y轴为decimal属性,X轴为年份,PID通过图例标记表示。我将两个配置相同的可视化图表叠加,提高透明度以同时查看两者:底层面积图展示每年decimal属性的平均值,顶层图表展示各PID对应的年份与decimal属性值。
问题
- 希望在每个标记旁显示文本(即标记下方显示PID),已知悬停标记可查看PID及所有属性,但需直接显示该文本。
- 当前叠加图表的实现方式不够规范,希望将这些信息整合到单个图表中,请问在PowerBI环境中是否可行?可使用DAX、Python等工具,本人刚接触该软件。
问题1:标记旁显示PID文本
原生可视化实现
选顶层的标记类图表,在「格式」面板找到「数据标签」选项,开启后在「标签内容」里选择PID字段,还可以调整标签位置(比如设为「下方」)、字体大小等样式,就能直接在每个标记旁显示PID。
Python可视化实现
如果用Python绘图(如Matplotlib),可以通过text()函数逐个添加标签,示例代码:
import matplotlib.pyplot as plt import pandas as pd # 假设数据已加载到df,包含Year、decimal、PID列 plt.scatter(df['Year'], df['decimal']) for idx, row in df.iterrows(): plt.text(row['Year'], row['decimal'] - 0.1, row['PID'], fontsize=8) # 偏移避免遮挡标记 # 后续绘制平均值面积图 plt.show()
问题2:整合为单个图表
完全可行,推荐两种方案:
方案1:原生组合图(无代码)
用Power BI自带的组合图:
- 把「年份」拖到X轴;
- 先计算年度平均值DAX公式:
decimal年度平均值 = AVERAGE('你的表名'[decimal]),将这个字段拖到「面积图」的Y轴; - 把单个PID的「decimal」字段拖到「散点/标记」的Y轴,同时将PID拖到「图例」或「数据标签」;
- 直接在界面调整样式即可完成整合,适合新手操作。
方案2:Python脚本整合
如果需要更灵活的样式,用Python可视化一次性输出整合图表,示例代码框架:
import matplotlib.pyplot as plt import pandas as pd # 获取Power BI传递的数据集 dataset = pd.DataFrame(dataset) # 计算年度平均值 year_avg = dataset.groupby('Year')['decimal'].mean().reset_index() # 绘制底层面积图 plt.fill_between(year_avg['Year'], year_avg['decimal'], alpha=0.3) plt.plot(year_avg['Year'], year_avg['decimal'], label='年度平均值') # 绘制顶层散点及PID标签 plt.scatter(dataset['Year'], dataset['decimal'], color='red', label='单个PID数据') for idx, row in dataset.iterrows(): plt.text(row['Year'], row['decimal'] - 0.1, row['PID'], fontsize=8) plt.xlabel('年份') plt.ylabel('decimal属性') plt.legend() plt.show()
内容的提问来源于stack exchange,提问作者BigWillieN
相关产品推荐
相关产品推荐

