使用方法

安装与初始化

使用 Plotly 前需要先安装对应的库。对于 Python 环境,通过 pip 执行 pip install plotly 即可完成安装。安装完成后,在脚本中导入 plotly.express(简化接口)或 plotly.graph_objects(底层控制)。官方推荐新手从 plotly.express 入手,因为它对常用图表类型做了高度封装。初始化时通常执行 import plotly.express as px,随后可以直接调用 px.scatter()px.line() 等函数生成图形对象,最后通过 fig.show() 在本地浏览器或 Jupyter Notebook 中渲染。

基础图表构建方法

构建图表的核心是提供数据并指定映射关系。以散点图为例,调用 px.scatter(data_frame, x=“列名”, y=“列名”, color=“类别列”) 即可生成带颜色区分的散点图。数据源可以是 pandas DataFrame 或字典。线图类似,使用 px.line(),支持连续变量与时间序列。条形图用 px.bar(),可通过 orientation=“h” 切换为水平条形图。每个函数返回的 fig 对象都具备 update_layout()update_traces() 方法用于后期调整。

布局与样式自定义

通过 fig.update_layout() 可以修改标题、坐标轴标签、图例位置、背景色等。例如 fig.update_layout(title=“销售额趋势”, xaxis_title=“月份”, yaxis_title=“金额”)。若需要统一风格,可以使用 fig.update_layout(template=“plotly_dark”) 切换到深色主题,官方内置了 plotly、ggplot2、seaborn、simple_white 等多种模板。对于更细致的控制,比如修改网格线,用 fig.update_xaxes(showgrid=True, gridcolor=‘lightgray’)

交互功能与工具配置

Plotly 图表默认自带交互工具:悬停显示数值、缩放、平移、框选、下载为 PNG 等。可通过 fig.update_layout(hovermode=“x unified”) 改变悬停模式,让鼠标经过时显示整条 x 轴对应的数据。若需隐藏特定工具栏按钮,使用 config 参数:fig.show(config={‘modeBarButtonsToRemove’: [‘zoom2d’, ‘pan2d’]})。对于需要“点击事件”的高级交互,可结合 Dash 框架或 plotly.figure_factory 实现回调,但基础使用中默认的交互已足够。

子图与多面板布局

当需要在一个页面展示多个图表时,使用 plotly.subplots 模块。从 from plotly.subplots import make_subplots 导入后,通过 fig = make_subplots(rows=2, cols=2) 创建 2×2 的子图布局。随后用 fig.add_trace() 依次添加图形对象,并通过 rowcol 参数指定位置。添加完成后可以用 fig.update_layout 设置共享的 x 轴或 y 轴:fig.update_xaxes(matches=‘x’)

图表导出与分享

导出静态图片是常见需求。使用 fig.write_image(“图表.png”) 需要安装 kaleido 或 orca 引擎(通过 pip install kaleido 安装)。支持 PNG、JPEG、SVG、PDF 格式。若是对外分享交互式图表,可使用 fig.write_html(“图表.html”) 生成独立 HTML 文件,打开后保留全部交互功能。官方还提供 Chart Studio 云服务,通过 fig.write_html 上传至临时链接,但需注册账户。出于离线使用的便捷性,推荐直接保存为 HTML。

常见接口调整技巧

- 修改颜色序列:px.colors.qualitative.Plotly 为默认色板,可通过 color_discrete_sequence=px.colors.qualistic.Pastel 切换。
- 调整点大小:在 px.scatter 中指定 size=“数值列” 令点大小随数值变化。
- 添加注释:使用 fig.add_annotation(x=, y=, text=) 在指定坐标位置添加文本。
- 更新图例:fig.update_layout(legend=dict(orientation=“h”, yanchor=“bottom”, y=1.02, xanchor=“right”, x=1)) 将图例置于图表上方水平排列。
- 控制坐标轴范围:fig.update_xaxes(range=[0, 100])