用途:当图表需要被交互探索或分享时使用本技能,例如悬停提示、缩放平移、图例切换、范围滑块、下拉菜单、动画帧、独立 HTML 或网页嵌入图表、Dash 仪表板、可旋转 3D 图(surface、scatter3d、mesh、volume),以及需要读者查看单个数据点的探索性分析。静态印刷图、期刊多面板图、快速统计图、流程图等场景应改用其他技能。
主要能力:Plotly 是 Python 绘图库,支持 40 多种图表类型,包括基础图(scatter、line、bar、pie、area、bubble)、统计图(histogram、box、violin、分布、误差棒)、科学图(heatmap、contour、ternary、图像显示)、金融图(candlestick、OHLC、waterfall、funnel、时间序列)、地图、3D 图(scatter3d、surface、mesh、cone、volume)以及 sunburst、treemap、sankey、平行坐标、仪表盘等专用图。提供 Plotly Express(px)高层 API 与 Graph Objects(go)底层 API,px 返回的 Figure 可继续用 go 方法更新布局或添加形状。支持子图(make_subplots)、模板(plotly_white、plotly_dark、ggplot2、seaborn、simple_white)、颜色、字体、坐标轴、图例、边距、注释与形状等定制。交互功能包括自定义悬停模板、平移缩放、图例切换、框选/套索、范围滑块、按钮与下拉菜单、动画。
使用方式:安装命令为 uv pip install plotly。基本用法示例:import plotly.express as px;fig = px.scatter(df, x='x', y='y', title='My First Plot');fig.show()。导出交互式 HTML 用 fig.write_html('chart.html'),或加 include_plotlyjs='cdn' 减小文件。导出静态图片需安装 kaleido(uv pip install kaleido)并执行 plotly_get_chrome 一次性安装 Chrome,然后 fig.write_image('chart.png', scale=3) 等;无 Chrome 时 write_image 会报错。导出默认值通过 plotly.io.defaults 设置。与 Dash 集成需 uv pip install dash,使用 dcc.Graph(figure=fig),Dash 3 及以上用 app.run()。
限制与版本变化:Plotly 7 基于 plotly.js 4,移除了长期弃用的 API,包括 *_mapbox 系列函数与 go.*mapbox 轨迹(改用 px.scatter_map、px.density_map、px.choropleth_map、px.line_map,基于 MapLibre,无需 token),以及 create_annotated_heatmap、create_distplot、create_gantt 等 figure-factory 函数(改用 Plotly Express 对应函数)。静态导出仅支持 Kaleido >= 1,write_image/to_image 的 engine 参数已移除。颜色字符串不再支持 0–1 分数通道的 rgb()/rgba() 与 hsv(),改用 rgba(255 0 0 / 0.5)、#ff0000aa、oklch() 等形式。趋势线 trendline='ols'/'lowess' 需要 statsmodels。