使用 Plotly 绘图库的示例#

Sphinx-Gallery 支持使用 Plotly 库 创建的示例。Sphinx-Gallery 可以捕获 Plotly 图形对象的 _repr_html_(参见 控制捕获哪些输出)。为了显示图形,代码块中的最后一行应为 Plotly 图形对象。

为了使用 Plotly,项目的 conf.py 应该包含以下行以选择适当的 Plotly 渲染器

import plotly.io as pio
pio.renderers.default = 'sphinx_gallery'

可选:Plotly 的 sphinx_gallery 渲染器不会生成 png 缩略图。对于 png 缩略图,您可以改用 sphinx_gallery_png 渲染器,并将 plotly.io._sg_scraper.plotly_sg_scraper 添加到 图像刮取器 列表中。刮取器要求您 安装 orca 包

本教程提供了一些 Plotly 图形的示例,从其高级 API Plotly Express 开始。

import numpy as np
import plotly.express as px

df = px.data.tips()
fig = px.bar(
    df,
    x="sex",
    y="total_bill",
    facet_col="day",
    color="smoker",
    barmode="group",
    template="presentation+plotly",
)
fig.update_layout(height=400)
fig


除了经典的散点图或条形图,Plotly 还提供了各种各样的轨迹,例如以下示例中的 sunburst 层次结构轨迹。Plotly 是一个交互式库:点击一个大陆以查看更详细的钻取视图。

df = px.data.gapminder().query("year == 2007")
fig = px.sunburst(
    df,
    path=["continent", "country"],
    values="pop",
    color="lifeExp",
    hover_data=["iso_alpha"],
    color_continuous_scale="RdBu",
    color_continuous_midpoint=np.average(df["lifeExp"], weights=df["pop"]),
)
fig.update_layout(title_text="Life expectancy of countries and continents")
fig


虽然 Plotly Express 通常是 Plotly 库的高级入口点,但可以使用低级 graph_objects 命令式 API 创建混合不同类型轨迹的复杂图形。

import plotly.graph_objects as go
from plotly.subplots import make_subplots

fig = make_subplots(rows=1, cols=2, specs=[[{}, {"type": "domain"}]])
fig.add_trace(go.Bar(x=[2018, 2019, 2020], y=[3, 2, 5], showlegend=False), 1, 1)
fig.add_trace(go.Pie(labels=["A", "B", "C"], values=[1, 3, 6]), 1, 2)
fig.update_layout(height=400, template="presentation", yaxis_title_text="revenue")
fig

# sphinx_gallery_thumbnail_path = '_static/plotly_logo.png'


脚本的总运行时间:(0 分钟 1.260 秒)

估计的内存使用量:188 MB

由 Sphinx-Gallery 生成的画廊