plotly

交互式可视化库。适用于需要悬停信息、缩放、平移或网页嵌入图表的场景,是构建仪表板、探索性分析和演示文稿的理想选择。若需生成静态出版图表,请使用matplotlib或科学可视化工具。

安装

热度:19

下载并解压到你的 skills 目录

复制命令,发送给 OpenClaw 自动安装:

下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-plotly&locale=zh&source=copy

Plotly - Python 交互式数据可视化库

技能概述

Plotly 是一个强大的 Python 交互式可视化库,支持 40+ 种图表类型,可轻松创建带悬停提示、缩放、平移功能的出版级质量图表,并支持导出为 HTML 嵌入网页。

适用场景

1. 数据仪表板与网页展示

当你需要将数据图表嵌入网站或构建交互式仪表板时,Plotly 是理想选择。生成的 HTML 图表完全独立,可以嵌入任何网页,用户可以通过悬停查看数据详情、缩放感兴趣的区域、切换图例显示。配合 Dash 框架,还能快速构建完整的 Web 数据应用。

2. 探索性数据分析

在数据分析过程中,Plotly 的交互特性让你能够深入探索数据。悬停提示快速查看具体数值、框选/套索选择特定数据点、时间序列范围滑块——这些功能帮助你发现数据中的模式和异常,特别适合用 pandas DataFrame 工作的数据分析师和科学家。

3. 演示文稿与科学可视化

需要制作演示用的图表时,Plotly 的出版级质量和丰富的图表类型(3D 表面图、热力图、等高线图、金融蜡烛图等)能满足专业需求。支持动画、按钮和下拉菜单,让你的演示更加生动。注意:如果是准备静态出版图(如论文插图),建议使用 Matplotlib 或 Scientific Visualization 技能。

核心功能

1. 双层 API 设计

Plotly 提供两层 API 满足不同需求:

  • Plotly Express (px):高级 API,1-5 行代码即可创建常见图表(散点图、折线图、柱状图、直方图等),自动处理颜色编码和图例,适合快速可视化

  • Graph Objects (go):底层 API,提供精细控制,支持 3D 网格、等值面、复杂金融图表等高级类型,适合需要完全自定义的可视化
  • 2. 丰富的交互功能

    所有 Plotly 图表默认支持丰富的交互:

  • 自定义悬停提示模板

  • 平滑缩放和平移

  • 图例点击切换显示

  • 框选/套索选择数据点

  • 时间序列范围滑块

  • 动画和交互式按钮
  • 3. 灵活的导出选项

  • 交互式 HTML:导出为独立的 HTML 文件,可嵌入任何网页

  • 静态图片:安装 kaleido 后可导出 PNG、PDF、SVG 格式,满足出版需求

  • 多图表布局:使用 make_subplots 创建共享轴的多图表仪表板
  • 常见问题

    Plotly 和 Matplotlib 有什么区别?什么时候该用 Plotly?

    Plotly 专注于交互式可视化,图表支持悬停、缩放、平移等操作,适合仪表板、网页嵌入和探索性分析。Matplotlib 擅长静态出版图,更适合论文插图和需要精确控制的静态图表。简单来说:需要交互选 Plotly,需要静态出版选 Matplotlib。

    如何用 Plotly 创建交互式图表并嵌入网页?

    使用 Plotly Express 几行代码即可创建:

    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='交互式散点图')
    fig.write_html('chart.html')  # 导出为 HTML

    生成的 HTML 文件可直接嵌入网页,或配合 Dash 构建完整的 Web 应用。

    Plotly Express 和 Graph Objects 应该选哪个?

    优先使用 Plotly Express (px):90% 的场景下,Express 更简洁快速,自动处理颜色、图例、布局等细节,特别适合用 pandas DataFrame 工作的用户。

    需要时使用 Graph Objects (go):当你需要创建 Express 不支持的图表类型(如 3D 网格、复杂金融图表),或需要对每个组件进行精细控制时。实际上,Express 返回的 Figure 对象可以直接调用 go 的方法,如 fig.update_layout()fig.add_hline(),两者可以灵活结合。