
- Plotly 教程
- Plotly - 首页
- Plotly - 简介
- Plotly - 环境设置
- Plotly - 在线和离线绘图
- 在 Jupyter Notebook 中内联绘图
- Plotly - 包结构
- Plotly - 导出为静态图像
- Plotly - 图例
- Plotly - 格式化坐标轴和刻度
- Plotly - 子图和内嵌图
- Plotly - 条形图和饼图
- Plotly - 散点图、Scattergl 图和气泡图
- Plotly - 点图和表格
- Plotly - 直方图
- Plotly - 箱线图、小提琴图和等高线图
- Plotly - 分布图、密度图和误差条形图
- Plotly - 热力图
- Plotly - 极坐标图和雷达图
- Plotly - OHLC 图、瀑布图和漏斗图
- Plotly - 3D 散点图和曲面图
- Plotly - 添加按钮/下拉菜单
- Plotly - 滑块控件
- Plotly - FigureWidget 类
- Plotly 与 Pandas 和 Cufflinks
- Plotly 与 Matplotlib 和 Chart Studio
- Plotly 有用资源
- Plotly - 快速指南
- Plotly - 有用资源
- Plotly - 讨论
Plotly - 子图和内嵌图
在这里,我们将了解 Plotly 中子图和内嵌图的概念。
创建子图
有时,并排比较数据的不同视图会很有帮助。这支持子图的概念。它在plotly.tools 模块中提供make_subplots() 函数。该函数返回一个 Figure 对象。
以下语句在一行中创建两个子图。
fig = tools.make_subplots(rows = 1, cols = 2)
我们现在可以将两个不同的轨迹(上面示例中的 exp 和 log 轨迹)添加到图形中。
fig.append_trace(trace1, 1, 1) fig.append_trace(trace2, 1, 2)
使用update() 方法进一步配置图形的布局,指定标题、宽度、高度等。
fig['layout'].update(height = 600, width = 800s, title = 'subplots')
这是完整的脚本:
from plotly import tools import plotly.plotly as py import plotly.graph_objs as go from plotly.offline import iplot, init_notebook_mode init_notebook_mode(connected = True) import numpy as np x = np.arange(1,11) y1 = np.exp(x) y2 = np.log(x) trace1 = go.Scatter( x = x, y = y1, name = 'exp' ) trace2 = go.Scatter( x = x, y = y2, name = 'log' ) fig = tools.make_subplots(rows = 1, cols = 2) fig.append_trace(trace1, 1, 1) fig.append_trace(trace2, 1, 2) fig['layout'].update(height = 600, width = 800, title = 'subplot') iplot(fig)
这是您的绘图网格的格式:[ (1,1) x1,y1 ] [ (1,2) x2,y2 ]

内嵌图
要将子图显示为内嵌图,我们需要配置其轨迹对象。首先将内嵌轨迹的xaxis 和 yaxis 属性分别设置为‘x2’ 和‘y2’。以下语句将‘log’ 轨迹放在内嵌图中。
trace2 = go.Scatter( x = x, y = y2, xaxis = 'x2', yaxis = 'y2', name = 'log' )
其次,配置 Layout 对象,其中内嵌图的 x 轴和 y 轴的位置由domain 属性定义,该属性指定其相对于主轴的位置。
xaxis2=dict( domain = [0.1, 0.5], anchor = 'y2' ), yaxis2 = dict( domain = [0.5, 0.9], anchor = 'x2' )
下面给出了在内嵌图中显示 log 轨迹并在主轴上显示 exp 轨迹的完整脚本:
trace1 = go.Scatter( x = x, y = y1, name = 'exp' ) trace2 = go.Scatter( x = x, y = y2, xaxis = 'x2', yaxis = 'y2', name = 'log' ) data = [trace1, trace2] layout = go.Layout( yaxis = dict(showline = True), xaxis2 = dict( domain = [0.1, 0.5], anchor = 'y2' ), yaxis2 = dict( showline = True, domain = [0.5, 0.9], anchor = 'x2' ) ) fig = go.Figure(data=data, layout=layout) iplot(fig)
输出如下:

广告