重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
org-chart-generator by dkyazzentwatwa/chatgpt-skills
npx skills add https://github.com/dkyazzentwatwa/chatgpt-skills --skill org-chart-generator从结构化数据创建专业的组织层级图。非常适合公司组织结构图、团队结构、汇报关系以及任何层级数据可视化。
from scripts.orgchart_gen import OrgChartGenerator
# 从 CSV 文件(员工姓名 + 经理)
org = OrgChartGenerator()
org.from_csv("employees.csv", name="name", manager="reports_to")
org.generate().save("org_chart.png")
# 从嵌套字典
org = OrgChartGenerator()
org.from_dict({
'name': 'CEO',
'children': [
{'name': 'CTO', 'children': [{'name': 'Dev Lead'}, {'name': 'QA Lead'}]},
{'name': 'CFO', 'children': [{'name': 'Controller'}]}
]
})
org.layout("top-down").generate().save("hierarchy.png")
org = OrgChartGenerator()
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# 从 CSV 文件,包含姓名和经理列
org.from_csv(
filepath="employees.csv",
name="employee_name",
manager="reports_to",
title="job_title", # 可选
department="dept", # 可选
)
# 从 JSON 文件(嵌套结构)
org.from_json("structure.json")
# 从嵌套字典
org.from_dict({
'name': 'Root',
'title': 'CEO',
'department': 'Executive',
'children': [
{'name': 'Child 1', 'children': [...]},
{'name': 'Child 2'}
]
})
# 编程式:添加节点和关系
org.add_node("Alice", title="CEO", department="Executive")
org.add_node("Bob", title="CTO", department="Engineering")
org.add_node("Carol", title="CFO", department="Finance")
org.add_relationship("Bob", "Alice") # Bob 向 Alice 汇报
org.add_relationship("Carol", "Alice")
# 布局方向
org.layout("top-down") # TB - 默认,根节点在顶部
org.layout("bottom-up") # BT - 根节点在底部
org.layout("left-right") # LR - 根节点在左侧
org.layout("right-left") # RL - 根节点在右侧
# 间距
org.spacing(rank=1.0, node=0.5) # 垂直和水平间距
# 按部门着色
org.colors_by_department({
'Engineering': '#3498db',
'Finance': '#2ecc71',
'Marketing': '#e74c3c',
'Executive': '#9b59b6'
})
# 按层级着色(树中的深度)
org.colors_by_level({
0: '#e74c3c', # 根节点 (CEO)
1: '#f39c12', # 第 1 层 (C 级高管)
2: '#3498db', # 第 2 层 (总监)
3: '#2ecc71' # 第 3 层及以上 (经理/员工)
})
# 统一颜色
org.node_color('#3498db')
# 节点形状
org.node_style(
shape='box', # box, ellipse, diamond, record
font='Arial',
font_size=12,
border_width=1
)
# 边线样式
org.edge_style(
style='orthogonal', # orthogonal, straight, curved
color='#666666',
width=1.0
)
# 生成图表
org.generate()
# 保存到文件
org.save("chart.png") # PNG
org.save("chart.svg") # SVG
org.save("chart.pdf") # PDF
org.save("chart.dot") # DOT 源代码
# 自定义尺寸保存
org.save("chart.png", dpi=150)
# 获取 DOT 源代码
dot_code = org.to_dot()
# 显示(在查看器中打开)
org.show()
扁平结构,包含经理引用:
name,reports_to,title,department
Alice,,"CEO","Executive"
Bob,"Alice","CTO","Engineering"
Carol,"Alice","CFO","Finance"
Dave,"Bob","Dev Lead","Engineering"
Eve,"Bob","QA Lead","Engineering"
Frank,"Carol","Controller","Finance"
注意:空的 reports_to 表示根节点。
嵌套结构:
{
"name": "Alice",
"title": "CEO",
"department": "Executive",
"children": [
{
"name": "Bob",
"title": "CTO",
"department": "Engineering",
"children": [
{"name": "Dave", "title": "Dev Lead"},
{"name": "Eve", "title": "QA Lead"}
]
},
{
"name": "Carol",
"title": "CFO",
"department": "Finance",
"children": [
{"name": "Frank", "title": "Controller"}
]
}
]
}
与 JSON 相同的嵌套结构:
data = {
'name': 'Alice',
'title': 'CEO',
'children': [
{'name': 'Bob', 'title': 'CTO'},
{'name': 'Carol', 'title': 'CFO'}
]
}
# 从 CSV
python orgchart_gen.py --input employees.csv \
--name name --manager reports_to \
--output org.png
# 包含职位和部门
python orgchart_gen.py --input team.csv \
--name employee --manager boss \
--title job_title --department dept \
--layout left-right \
--output team_chart.png
# 从 JSON
python orgchart_gen.py --input structure.json --output org.svg
# 高分辨率
python orgchart_gen.py --input data.csv --name n --manager m \
--output chart.png --dpi 300
| 参数 | 描述 | 默认值 |
|---|---|---|
--input | 输入的 CSV 或 JSON 文件 | 必需 |
--name | 姓名列 (CSV) | - |
--manager | 经理列 (CSV) | - |
--title | 职位列 (CSV) | - |
--department | 部门列 (CSV) | - |
--output | 输出文件路径 | orgchart.png |
--layout | 布局方向 | top-down |
--dpi | 图像分辨率 | 96 |
org = OrgChartGenerator()
org.from_csv("company.csv", name="employee", manager="manager")
org.layout("top-down")
org.node_style(shape='box')
org.generate().save("company_org.png")
org = OrgChartGenerator()
org.from_csv("team.csv", name="name", manager="reports_to", department="dept")
org.colors_by_department({
'Executive': '#8e44ad',
'Engineering': '#2980b9',
'Sales': '#27ae60',
'Marketing': '#e67e22',
'HR': '#c0392b'
})
org.layout("left-right")
org.generate().save("dept_org.png")
org = OrgChartGenerator()
org.from_dict({
'name': 'Sarah Johnson',
'title': 'CEO',
'children': [
{
'name': 'Mike Chen',
'title': 'VP Engineering',
'children': [
{'name': 'Lisa Park', 'title': 'Engineering Manager'},
{'name': 'Tom Brown', 'title': 'Tech Lead'}
]
},
{
'name': 'Emma Wilson',
'title': 'VP Sales',
'children': [
{'name': 'John Davis', 'title': 'Sales Manager'}
]
}
]
})
org.layout("top-down")
org.generate().save("executive_org.png")
org = OrgChartGenerator()
# 添加节点
org.add_node("Project Manager", department="PMO")
org.add_node("Tech Lead", department="Engineering")
org.add_node("Designer", department="Design")
org.add_node("Dev 1", department="Engineering")
org.add_node("Dev 2", department="Engineering")
org.add_node("QA", department="Quality")
# 添加关系
org.add_relationship("Tech Lead", "Project Manager")
org.add_relationship("Designer", "Project Manager")
org.add_relationship("QA", "Project Manager")
org.add_relationship("Dev 1", "Tech Lead")
org.add_relationship("Dev 2", "Tech Lead")
org.colors_by_department({
'PMO': '#9b59b6',
'Engineering': '#3498db',
'Design': '#e74c3c',
'Quality': '#2ecc71'
})
org.generate().save("project_team.png")
# 董事会结构
org = OrgChartGenerator()
org.from_dict({
'name': 'Board of Directors',
'children': [
{
'name': 'CEO',
'children': [
{'name': 'COO'},
{'name': 'CFO'},
{'name': 'CTO'}
]
},
{
'name': 'Audit Committee',
'children': [
{'name': 'Internal Audit'},
{'name': 'External Audit'}
]
}
]
})
org.generate().save("board_structure.png")
默认情况下,节点显示:
示例节点外观:
┌─────────────┐
│ John Smith │
│ CEO │
└─────────────┘
graphviz>=0.20.0
pandas>=2.0.0
系统要求:必须在系统上安装 Graphviz。
brew install graphvizapt-get install graphviz每周安装次数
47
仓库
GitHub 星标数
37
首次出现
2026年1月24日
安全审计
安装于
gemini-cli38
opencode38
codex37
cursor36
github-copilot35
claude-code33
Create professional organizational hierarchy charts from structured data. Perfect for company org charts, team structures, reporting relationships, and any hierarchical data visualization.
from scripts.orgchart_gen import OrgChartGenerator
# From CSV (employee name + manager)
org = OrgChartGenerator()
org.from_csv("employees.csv", name="name", manager="reports_to")
org.generate().save("org_chart.png")
# From nested dictionary
org = OrgChartGenerator()
org.from_dict({
'name': 'CEO',
'children': [
{'name': 'CTO', 'children': [{'name': 'Dev Lead'}, {'name': 'QA Lead'}]},
{'name': 'CFO', 'children': [{'name': 'Controller'}]}
]
})
org.layout("top-down").generate().save("hierarchy.png")
org = OrgChartGenerator()
# From CSV with name and manager columns
org.from_csv(
filepath="employees.csv",
name="employee_name",
manager="reports_to",
title="job_title", # Optional
department="dept", # Optional
)
# From JSON file (nested structure)
org.from_json("structure.json")
# From nested dictionary
org.from_dict({
'name': 'Root',
'title': 'CEO',
'department': 'Executive',
'children': [
{'name': 'Child 1', 'children': [...]},
{'name': 'Child 2'}
]
})
# Programmatic: add nodes and relationships
org.add_node("Alice", title="CEO", department="Executive")
org.add_node("Bob", title="CTO", department="Engineering")
org.add_node("Carol", title="CFO", department="Finance")
org.add_relationship("Bob", "Alice") # Bob reports to Alice
org.add_relationship("Carol", "Alice")
# Layout direction
org.layout("top-down") # TB - Default, root at top
org.layout("bottom-up") # BT - Root at bottom
org.layout("left-right") # LR - Root on left
org.layout("right-left") # RL - Root on right
# Spacing
org.spacing(rank=1.0, node=0.5) # Vertical and horizontal spacing
# Colors by department
org.colors_by_department({
'Engineering': '#3498db',
'Finance': '#2ecc71',
'Marketing': '#e74c3c',
'Executive': '#9b59b6'
})
# Colors by level (depth in tree)
org.colors_by_level({
0: '#e74c3c', # Root (CEO)
1: '#f39c12', # Level 1 (C-suite)
2: '#3498db', # Level 2 (Directors)
3: '#2ecc71' # Level 3+ (Managers/Staff)
})
# Uniform color
org.node_color('#3498db')
# Node shape
org.node_style(
shape='box', # box, ellipse, diamond, record
font='Arial',
font_size=12,
border_width=1
)
# Edge style
org.edge_style(
style='orthogonal', # orthogonal, straight, curved
color='#666666',
width=1.0
)
# Generate the chart
org.generate()
# Save to file
org.save("chart.png") # PNG
org.save("chart.svg") # SVG
org.save("chart.pdf") # PDF
org.save("chart.dot") # DOT source
# Save with custom size
org.save("chart.png", dpi=150)
# Get DOT source code
dot_code = org.to_dot()
# Show (opens in viewer)
org.show()
Flat structure with manager references:
name,reports_to,title,department
Alice,,"CEO","Executive"
Bob,"Alice","CTO","Engineering"
Carol,"Alice","CFO","Finance"
Dave,"Bob","Dev Lead","Engineering"
Eve,"Bob","QA Lead","Engineering"
Frank,"Carol","Controller","Finance"
Note: Empty reports_to indicates root node(s).
Nested structure:
{
"name": "Alice",
"title": "CEO",
"department": "Executive",
"children": [
{
"name": "Bob",
"title": "CTO",
"department": "Engineering",
"children": [
{"name": "Dave", "title": "Dev Lead"},
{"name": "Eve", "title": "QA Lead"}
]
},
{
"name": "Carol",
"title": "CFO",
"department": "Finance",
"children": [
{"name": "Frank", "title": "Controller"}
]
}
]
}
Same nested structure as JSON:
data = {
'name': 'Alice',
'title': 'CEO',
'children': [
{'name': 'Bob', 'title': 'CTO'},
{'name': 'Carol', 'title': 'CFO'}
]
}
# From CSV
python orgchart_gen.py --input employees.csv \
--name name --manager reports_to \
--output org.png
# With title and department
python orgchart_gen.py --input team.csv \
--name employee --manager boss \
--title job_title --department dept \
--layout left-right \
--output team_chart.png
# From JSON
python orgchart_gen.py --input structure.json --output org.svg
# High resolution
python orgchart_gen.py --input data.csv --name n --manager m \
--output chart.png --dpi 300
| Argument | Description | Default |
|---|---|---|
--input | Input CSV or JSON file | Required |
--name | Name column (CSV) | - |
--manager | Manager column (CSV) | - |
--title | Title column (CSV) | - |
--department | Department column (CSV) | - |
org = OrgChartGenerator()
org.from_csv("company.csv", name="employee", manager="manager")
org.layout("top-down")
org.node_style(shape='box')
org.generate().save("company_org.png")
org = OrgChartGenerator()
org.from_csv("team.csv", name="name", manager="reports_to", department="dept")
org.colors_by_department({
'Executive': '#8e44ad',
'Engineering': '#2980b9',
'Sales': '#27ae60',
'Marketing': '#e67e22',
'HR': '#c0392b'
})
org.layout("left-right")
org.generate().save("dept_org.png")
org = OrgChartGenerator()
org.from_dict({
'name': 'Sarah Johnson',
'title': 'CEO',
'children': [
{
'name': 'Mike Chen',
'title': 'VP Engineering',
'children': [
{'name': 'Lisa Park', 'title': 'Engineering Manager'},
{'name': 'Tom Brown', 'title': 'Tech Lead'}
]
},
{
'name': 'Emma Wilson',
'title': 'VP Sales',
'children': [
{'name': 'John Davis', 'title': 'Sales Manager'}
]
}
]
})
org.layout("top-down")
org.generate().save("executive_org.png")
org = OrgChartGenerator()
# Add nodes
org.add_node("Project Manager", department="PMO")
org.add_node("Tech Lead", department="Engineering")
org.add_node("Designer", department="Design")
org.add_node("Dev 1", department="Engineering")
org.add_node("Dev 2", department="Engineering")
org.add_node("QA", department="Quality")
# Add relationships
org.add_relationship("Tech Lead", "Project Manager")
org.add_relationship("Designer", "Project Manager")
org.add_relationship("QA", "Project Manager")
org.add_relationship("Dev 1", "Tech Lead")
org.add_relationship("Dev 2", "Tech Lead")
org.colors_by_department({
'PMO': '#9b59b6',
'Engineering': '#3498db',
'Design': '#e74c3c',
'Quality': '#2ecc71'
})
org.generate().save("project_team.png")
# Board of Directors structure
org = OrgChartGenerator()
org.from_dict({
'name': 'Board of Directors',
'children': [
{
'name': 'CEO',
'children': [
{'name': 'COO'},
{'name': 'CFO'},
{'name': 'CTO'}
]
},
{
'name': 'Audit Committee',
'children': [
{'name': 'Internal Audit'},
{'name': 'External Audit'}
]
}
]
})
org.generate().save("board_structure.png")
By default, nodes display:
Example node appearance:
┌─────────────┐
│ John Smith │
│ CEO │
└─────────────┘
graphviz>=0.20.0
pandas>=2.0.0
System Requirement : Graphviz must be installed on the system.
brew install graphvizapt-get install graphvizWeekly Installs
47
Repository
GitHub Stars
37
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
gemini-cli38
opencode38
codex37
cursor36
github-copilot35
claude-code33
科学数据探索性分析工具:自动检测200+格式,生成EDA报告与可视化建议
1,100 周安装
Sanity内容建模最佳实践:结构化内容设计原则与无头CMS指南
1,400 周安装
Chrome CDP 命令行工具:轻量级浏览器自动化,支持截图、执行JS、无障碍快照
1,300 周安装
template-skill 技能模板:快速构建AI技能,含触发词、输入输出与工作流
1,300 周安装
TanStack Start 全栈开发:基于 Cloudflare 的 React 19 + D1 数据库应用构建指南
1,300 周安装
Doublecheck AI 内容验证工具 - GitHub Copilot 三层事实核查流程,自动识别幻觉风险
1,400 周安装
Sentry问题修复指南:利用AI分析生产环境错误并自动修复
1,300 周安装
--output | Output file path | orgchart.png |
--layout | Layout direction | top-down |
--dpi | Image resolution | 96 |