[ SKILL_DOCUMENTATION ]
# Graph Objects - 低级 API
`plotly.graph_objects` 模块通过代表 Plotly 组件的 Python 类,提供了对图形构建的精细化控制。
## 核心类
- **`go.Figure`** - 主图形容器
- **`go.FigureWidget`** - Jupyter 兼容的交互式组件
- **轨迹类型** - 40 多种图表类型(散点图、柱状图、热力图等)
- **布局组件** - 坐标轴、注释、形状等
## 主要优势
1. **数据验证** - 为无效属性提供有用的错误提示
2. **内置文档** - 可通过 docstrings 访问
3. **灵活语法** - 支持字典或属性访问
4. **便捷方法** - `.add_trace()`, `.update_layout()` 等
5. **魔法下划线表示法** - 紧凑的嵌套属性访问
6. **集成 I/O** - `.show()`, `.write_html()`, `.write_image()`
## 基础图形构建
### 创建空图形
python
import plotly.graph_objects as go
fig = go.Figure()
### 添加轨迹
python
# 方法 1:一次添加一个轨迹
fig = go.Figure()
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[4, 5, 6], name='线 1'))
fig.add_trace(go.Scatter(x=[1, 2, 3], y=[2, 3, 4], name='线 2'))
# 方法 2:将数据传递给构造函数
fig = go.Figure(data=[
go.Scatter(x=[1, 2, 3], y=[4, 5, 6], name='线 1'),
go.Scatter(x=[1, 2, 3], y=[2, 3, 4], name='线 2')
])
## 常见轨迹类型
### 散点图(线和标记)
python
fig.add_trace(go.Scatter(
x=[1, 2, 3, 4],
y=[10, 11, 12, 13],
mode='lines+markers', # 'lines', 'markers', 'lines+markers', 'text'
name='轨迹 1',
line=dict(color='red', width=2, dash='dash'),
marker=dict(size=10, color='blue', symbol='circle')
))
### 柱状图
python
fig.add_trace(go.Bar(
x=['A', 'B', 'C'],
y=[1, 3, 2],
name='柱状图',
marker=dict(color='lightblue'),
text=[1, 3, 2],
textposition='auto'
))
### 热力图
python
fig.add_trace(go.Heatmap(
z=[[1, 2, 3], [4, 5, 6], [7, 8, 9]],
x=['A', 'B', 'C'],
y=['X', 'Y', 'Z'],
colorscale='Viridis'
))
### 3D 散点图
python
fig.add_trace(go.Scatter3d(
x=[1, 2, 3],
y=[4, 5, 6],
z=[7, 8, 9],
mode='markers',
marker=dict(size=5, color='red')
))
## 布局配置
### 更新布局
python
fig.update_layout(
title='图形标题',
title_font_size=20,
xaxis_title='X 轴',
yaxis_title='Y 轴',
width=800,
height=600,
template='plotly_white',
showlegend=True,
hoverm