让图表动起来:Plotly 交互绘图与数据导出

解决静态图表缺乏探索性的问题:通过 Plotly 库构建支持悬停提示、缩放平移的交互式图表,轻松生成可嵌入网页的可视化效果,或导出为高分辨率图片。

为什么需要这个技能

在处理复杂数据集(如金融时序、地理空间或科学模拟数据)时,静态图表(如 Matplotlib)往往只能展示单一维度的信息。

Plotly 允许用户在浏览图表时悬停查看具体数值、放大查看细节、切换图表类型,甚至直接通过链接在网页中嵌入动态看板。这对于构建自动化分析报表、探索性数据分析(EDA)或制作汇报演示至关重要。

适用场景

  • 构建仪表盘:需要在网页或本地工具中展示实时更新的动态数据看板。
  • 探索性分析:分析师需要快速检查数据分布、相关性,而无需反复运行脚本。
  • 动态演示:需要在 PPT 或网页中嵌入带滚动条的时间序列或 3D 模型。
  • 出版级输出:需要将交互式 HTML 报告导出为高清 PNG 或 PDF 用于论文发表。

核心工作流

  1. 环境准备与安装

    uv pip install plotly
    # 如需生成图片,需额外安装 kaleido
    uv pip install kaleido
  2. 选择 API 接口

    • Plotly Express (px):适合快速生成标准图表(散点图、柱状图),代码简洁,默认配置合理。
    • Graph Objects (go):适合需要精细控制图表组件(如 3D 网格、自定义标注)的高级场景。
  3. 生成与定制图表

    • 创建基础图形对象:
      import plotly.express as px
      import pandas as pd
      
      df = pd.DataFrame({
          'x': [1, 2, 3, 4],
          'y': [10, 11, 12, 13]
      })
      
      fig = px.scatter(df, x='x', y='y', title='My First Plot')
      fig.show()
    • 自定义悬停信息与布局:
      fig.update_traces(hovertemplate='<b>%{x}</b><br>Value: %{y:.2f}<extra></extra>')
      fig.update_layout(template='plotly_dark')
  4. 导出图表结果

    • 输出为交互式 HTML:
      fig.write_html('chart.html')               # 完整静态文件
      fig.write_html('chart.html', include_plotlyjs='cdn')  # 体积小,适合网页嵌入
    • 输出为静态图片(需依赖 kaleido):
      fig.write_image('chart.png')   # PNG
      fig.write_image('chart.pdf')   # PDF

下载和安装

下载 plotly 中文版 Skill ZIP

你可能还需要

暂无推荐