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

如何在Power BI中使用Python视觉工具创建Plotly图表

问题描述

我正在使用Power BI的Python视觉工具,想要创建Plotly图表。目前可以用Seaborn和Matplotlib生成图表,但尝试Plotly时出现错误,图表会在Power BI外部的HTML窗口打开。以下是我使用的代码:

import pandas as pd
import plotly.graph_objects as go  # Import go for graph_objects

# Create a scatter plot figure
fig = go.Figure()

# Add scatter trace
fig.add_trace(
    go.Scatter(
        x=dataset['I_B'], 
        y=dataset['I_C'],
        mode='markers',
        marker=dict(size=8, color='blue', opacity=0.7)
    )
)

# Customize the layout
fig.update_layout(
    title="Scatter Plot of I_B vs. I_C",
    xaxis_title="I_B",
    yaxis_title="I_C",
    width=800,
    height=500,
    template="plotly_white"
)

# Show the figure inline
fig.show()
解决方案

Power BI的Python视觉工具不支持Plotly默认的fig.show()方法——这个方法会启动本地Web服务,在外部浏览器打开交互式HTML页面,这就是你看到图表跳出Power BI的原因。要让Plotly图表在Power BI内部显示,需要将其转换为静态图像输出,具体操作如下:

  1. 安装依赖库:在Power BI使用的Python环境中执行pip install kaleido,这个库用于将Plotly图表转换为静态图片。
  2. 修改代码:替换原代码中的fig.show()部分,改为将Plotly图表转为静态图像并通过Matplotlib渲染:

修改后的完整代码:

import pandas as pd
import plotly.graph_objects as go
import plotly.io as pio
import matplotlib.pyplot as plt
from io import BytesIO

# 创建散点图
fig = go.Figure()

# 添加散点轨迹
fig.add_trace(
    go.Scatter(
        x=dataset['I_B'], 
        y=dataset['I_C'],
        mode='markers',
        marker=dict(size=8, color='blue', opacity=0.7)
    )
)

# 自定义布局
fig.update_layout(
    title="I_B vs I_C 散点图",
    xaxis_title="I_B",
    yaxis_title="I_C",
    width=800,
    height=500,
    template="plotly_white"
)

# 将Plotly图表转为PNG并在Power BI中显示
img_bytes = pio.to_image(fig, format='png')
img = plt.imread(BytesIO(img_bytes))
plt.imshow(img)
plt.axis('off')  # 隐藏多余坐标轴
plt.show()

这样修改后,图表会以静态图片的形式嵌入到Power BI的Python视觉组件中,不会再跳出外部窗口。

如果需要交互式Plotly图表,目前Power BI的Python视觉不支持该形式,可考虑使用Power BI原生可视化组件,或把Plotly图表发布到Web后嵌入Power BI。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 20:55:16