You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power BI Python视觉对象中添加(0,0)常量线、公差线及动态按钮

在Power BI中用Python视觉对象制作带动态公差线的散点图

一、修正并导入示例数据

你提供的Python生成数据代码存在拼写错误(np.arrange应为np.arange),修正后可在Power BI的Power Query编辑器中生成数据:

  1. 进入Power Query编辑器 → 点击「转换」选项卡 → 「运行Python脚本」
  2. 粘贴以下代码并运行:
import numpy as np
import pandas as pd
np.random.seed(10)
x = np.arange(0,100)
y = np.random.randint(0,100,100)
# 转为DataFrame供Power BI识别
df = pd.DataFrame({'x':x, 'y':y})
  1. 关闭编辑器并加载数据到Power BI模型。

二、创建基础视觉对象(含基准线与固定公差线)

  1. 在画布中添加Python视觉对象,勾选字段列表中的x和y。
  2. 替换默认的Python脚本为以下代码,实现散点图、(0,0)基准线和初始公差线(以10为例):
import matplotlib.pyplot as plt
import pandas as pd

# 获取Power BI传入的数据集
df = dataset

# 初始化画布
fig, ax = plt.subplots(figsize=(8,6))

# 绘制散点图
ax.scatter(df['x'], df['y'], alpha=0.6, color='#1f77b4', label='数据点')

# 绘制从(0,0)出发的基准线(y=x)
ax.plot([0, df['x'].max()], [0, df['y'].max()], color='#ff7f0e', linestyle='--', linewidth=2, label='基准线')

# 初始公差值
tolerance = 10

# 绘制X轴方向公差线(水平)
ax.axhline(y=tolerance, color='#2ca02c', linestyle=':', linewidth=2, label=f'Y公差线({tolerance})')
# 绘制Y轴方向公差线(垂直)
ax.axvline(x=tolerance, color='#d62728', linestyle=':', linewidth=2, label=f'X公差线({tolerance})')

# 图表样式设置
ax.set_xlabel('X轴', fontsize=12)
ax.set_ylabel('Y轴', fontsize=12)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)

# 显示图表
plt.show()

运行后就能看到包含散点、基准线和固定公差线的图表。

三、添加动态公差调整按钮

通过Power BI参数实现公差值的动态调整:

  1. 创建参数:点击「建模」选项卡 → 「新建参数」,设置如下:
    • 参数类型:整数
    • 最小值:0
    • 最大值:100
    • 默认值:10
    • 参数名称:公差值
    • 勾选「添加切片器」,生成可调的数值按钮
  2. 将「公差值」参数添加到Python视觉对象的字段列表中
  3. 修改Python脚本,替换固定公差值为动态参数值:
import matplotlib.pyplot as plt
import pandas as pd

df = dataset

# 提取参数值(参数会在每行重复,取第一个值即可)
tolerance = df['公差值'].iloc[0]

fig, ax = plt.subplots(figsize=(8,6))

ax.scatter(df['x'], df['y'], alpha=0.6, color='#1f77b4', label='数据点')
ax.plot([0, df['x'].max()], [0, df['y'].max()], color='#ff7f0e', linestyle='--', linewidth=2, label='基准线')

# 动态公差线
ax.axhline(y=tolerance, color='#2ca02c', linestyle=':', linewidth=2, label=f'Y公差线({tolerance})')
ax.axvline(x=tolerance, color='#d62728', linestyle=':', linewidth=2, label=f'X公差线({tolerance})')

ax.set_xlabel('X轴', fontsize=12)
ax.set_ylabel('Y轴', fontsize=12)
ax.legend(fontsize=10)
ax.grid(True, alpha=0.3)

plt.show()

现在调整切片器的数值,图表中的两条公差线会自动对应更新位置。

注意事项

  • 确保本地已安装matplotlib和pandas库,Power BI会调用本地Python环境
  • 若数据范围不是0-100,可修改基准线的端点为df['x'].max()和df['y'].max()以适配数据

内容的提问来源于stack exchange,提问作者ukanafun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 11:20:30