aW1wb3J0IG1hdHBsb3RsaWIucHlwbG90IGFzIHBsdAogaW1wb3J0IG51bXB5IGFzIG5wCiBmcm9tIG1hdHBsb3RsaWIucGF0Y2hlcyBpbXBvcnQgRmFuY3lCYm94UGF0Y2gKIGltcG9ydCBtYXRwbG90bGliLnBhdGNoZXMgYXMgbXBhdGNoZXMKICMg6K6+572u5Lit5paH5a2X5L2TCiBwbHQucmNQYXJhbXNbJ2ZvbnQuc2Fucy1zZXJpZiddID0gWydTaW1IZWknLCAnRGVqYVZ1IFNhbnMnXQogcGx0LnJjUGFyYW1zWydheGVzLnVuaWNvZGVfbWludXMnXSA9IEZhbHNlCiAjIOWIm+W7uuWbvuW9ogogZmlnLCBheCA9IHBsdC5zdWJwbG90cyhmaWdzaXplPSgxMiwgNikpCiAjIOaXtumXtOi9tOaVsOaNrgogc3RhZ2VzID0gWyfliJ3mnJ/mjqLntKLpmLbmrrUnLCAn6IO95Yqb6L+b6Zi26Zi25q61JywgJ+mVv+acn+a3seiAlemYtuautSddCiB0aW1lX3JhbmdlcyA9IFsnMS0y5bm0JywgJzMtNeW5tCcsICc15bm05Lul5LiKJ10KIHN0YXJ0X3RpbWVzID0gWzEsIDMsIDVdCiBlbmRfdGltZXMgPSBbMiwgNSwgMTBdCiBjb2xvcnMgPSBbJyM0Q0FGNTAnLCAnIzIxOTZGMycsICcjRkY5ODAwJ10KIHRhc2tzID0gWwogICAgICcmYnVsbDsg5o6M5o+h5py65qKw5qC45b+D5Y6f55CGXG4mYnVsbDsg5Z+656GA6K6+5aSH6L+Q57u05a6e5pONXG4mYnVsbDsg6KGM5Lia5Z+656GA5oqA6IO96K6k6K+BJywKICAgICAnJmJ1bGw7IOa3seiAlee7huWIhumihuWfn+aKgOacr1xuJmJ1bGw7IOS4u+WvvOS4reWwj+Wei+mhueebrlxuJmJ1bGw7IOS4k+mhueaKgOiDvei/m+mYtuiupOivgScsCiAgICAgJyZidWxsOyDnu5/nrbnlpKflnovnoJTlj5Hpobnnm65cbiZidWxsOyDlm6LpmJ/nrqHnkIbkuI7mioDmnK/liJvmlrBcbiZidWxsOyDmiJDkuLrmioDmnK/nrqHnkIblpI3lkIjlnovkurrmiY0nCiBdCiAjIOe7mOWItuaXtumXtOi9tOS4u+e6vwogYXgucGxvdChbMCwgMTFdLCBbMCwgMF0sIGNvbG9yPScjMzMzMzMzJywgbGluZXdpZHRoPTMsIHpvcmRlcj0xKQogIyDnu5jliLblkITpmLbmrrUKIGZvciBpLCAoc3RhZ2UsIHRpbWVfcmFuZ2UsIHN0YXJ0LCBlbmQsIGNvbG9yLCB0YXNrKSBpbiBlbnVtZXJhdGUoemlwKHN0YWdlcywgdGltZV9yYW5nZXMsIHN0YXJ0X3RpbWVzLCBlbmRfdGltZXMsIGNvbG9ycywgdGFza3MpKToKICAgICAjIOmYtuauteefqeW9ouahhgogICAgIGJib3ggPSBGYW5jeUJib3hQYXRjaCgoc3RhcnQsIC0wLjgpLCBlbmQgLSBzdGFydCwgMS4yLCAKICAgICAgICAgICAgICAgICAgICAgICAgICBib3hzdHlsZT0mcXVvdDtyb3VuZCxwYWQ9MC4xJnF1b3Q7LCAKICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNlY29sb3I9Y29sb3IsIGFscGhhPTAuMywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgZWRnZWNvbG9yPWNvbG9yLCBsaW5ld2lkdGg9MiwKICAgICAgICAgICAgICAgICAgICAgICAgICB6b3JkZXI9MikKICAgICBheC5hZGRfcGF0Y2goYmJveCkKICAgICAKICAgICAjIOmYtuauteagh+mimAogICAgIGF4LnRleHQoKHN0YXJ0ICsgZW5kKSAvIDIsIDAuMSwgc3RhZ2UsIGhhPSdjZW50ZXInLCB2YT0nY2VudGVyJywgCiAgICAgICAgICAgICBmb250c2l6ZT0xMiwgZm9udHdlaWdodD0nYm9sZCcsIGNvbG9yPWNvbG9yKQogICAgIAogICAgICMg5pe26Ze06IyD5Zu0CiAgICAgYXgudGV4dCgoc3RhcnQgKyBlbmQpIC8gMiwgLTAuNiwgdGltZV9yYW5nZSwgaGE9J2NlbnRlcicsIHZhPSdjZW50ZXInLCAKICAgICAgICAgICAgIGZvbnRzaXplPTEwLCBjb2xvcj0nIzMzMzMzMycpCiAgICAgCiAgICAgIyDmoLjlv4Pku7vliqEKICAgICBheC50ZXh0KChzdGFydCArIGVuZCkgLyAyLCAwLjgsIHRhc2ssIGhhPSdjZW50ZXInLCB2YT0nYm90dG9tJywgCiAgICAgICAgICAgICBmb250c2l6ZT05LCBjb2xvcj0nIzMzMzMzMycsIGxpbmVzcGFjaW5nPTEuMikKICAgICAKICAgICAjIOmYtuauteiKgueCuQogICAgIGF4LnNjYXR0ZXIoW3N0YXJ0LCBlbmRdLCBbMCwgMF0sIGNvbG9yPWNvbG9yLCBzPTgwLCB6b3JkZXI9MykKICMg6K6+572u5Z2Q5qCH6L20CiBheC5zZXRfeGxpbSgwLCAxMSkKIGF4LnNldF95bGltKC0xLjUsIDIuMCkKIGF4LnNldF94dGlja3MobnAuYXJhbmdlKDEsIDExKSkKIGF4LnNldF94dGlja2xhYmVscyhbZid7aX3lubQnIGZvciBpIGluIHJhbmdlKDEsIDExKV0sIGZvbnRzaXplPTkpCiBheC5zZXRfeXRpY2tzKFtdKQogYXguc3BpbmVzWyd0b3AnXS5zZXRfdmlzaWJsZShGYWxzZSkKIGF4LnNwaW5lc1sncmlnaHQnXS5zZXRfdmlzaWJsZShGYWxzZSkKIGF4LnNwaW5lc1snYm90dG9tJ10uc2V0X3Zpc2libGUoRmFsc2UpCiBheC5zcGluZXNbJ2xlZnQnXS5zZXRfdmlzaWJsZShGYWxzZSkKICMg5re75Yqg572R5qC8CiBheC5ncmlkKFRydWUsIGF4aXM9J3gnLCBhbHBoYT0wLjMsIGxpbmVzdHlsZT0nLS0nKQogIyDmoIfpopgKIHBsdC50aXRsZSgn5py65qKw6K6+5aSH6KGM5Lia6IGM5Lia5Y+R5bGV6Zi25q615pe26Ze06L20JywgZm9udHNpemU9MTYsIGZvbnR3ZWlnaHQ9J2JvbGQnLCBwYWQ9MjApCiAjIOiwg+aVtOW4g+WxgAogcGx0LnRpZ2h0X2xheW91dCgpCiAjIOS/neWtmOWbvueJhwogcGx0LnNhdmVmaWcoJ+acuuaisOiuvuWkh+ihjOS4muiBjOS4muWPkeWxlemYtuauteaXtumXtOi9tOWbvi5wbmcnLCBkcGk9MzAwLCBiYm94X2luY2hlcz0ndGlnaHQnKQogcGx0LmNsb3NlKCkKIHByaW50KCZxdW90O+acuuaisOiuvuWkh+ihjOS4muiBjOS4muWPkeWxlemYtuauteaXtumXtOi9tOWbvuW3sueUn+aIkOWujOaIkCZxdW90Oyk=
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.patches import FancyBboxPatch
import matplotlib.patches as mpatches
# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
# 创建图形
fig, ax = plt.subplots(figsize=(12, 6))
# 时间轴数据
stages = ['初期探索阶段', '能力进阶阶段', '长期深耕阶段']
time_ranges = ['1-2年', '3-5年', '5年以上']
start_times = [1, 3, 5]
end_times = [2, 5, 10]
colors = ['#4CAF50', '#2196F3', '#FF9800']
tasks = [
'• 掌握机械核心原理\n• 基础设备运维实操\n• 行业基础技能认证',
'• 深耕细分领域技术\n• 主导中小型项目\n• 专项技能进阶认证',
'• 统筹大型研发项目\n• 团队管理与技术创新\n• 成为技术管理复合型人才'
]
# 绘制时间轴主线
ax.plot([0, 11], [0, 0], color='#333333', linewidth=3, zorder=1)
# 绘制各阶段
for i, (stage, time_range, start, end, color, task) in enumerate(zip(stages, time_ranges, start_times, end_times, colors, tasks)):
# 阶段矩形框
bbox = FancyBboxPatch((start, -0.8), end - start, 1.2,
boxstyle="round,pad=0.1",
facecolor=color, alpha=0.3,
edgecolor=color, linewidth=2,
zorder=2)
ax.add_patch(bbox)
# 阶段标题
ax.text((start + end) / 2, 0.1, stage, ha='center', va='center',
fontsize=12, fontweight='bold', color=color)
# 时间范围
ax.text((start + end) / 2, -0.6, time_range, ha='center', va='center',
fontsize=10, color='#333333')
# 核心任务
ax.text((start + end) / 2, 0.8, task, ha='center', va='bottom',
fontsize=9, color='#333333', linespacing=1.2)
# 阶段节点
ax.scatter([start, end], [0, 0], color=color, s=80, zorder=3)
# 设置坐标轴
ax.set_xlim(0, 11)
ax.set_ylim(-1.5, 2.0)
ax.set_xticks(np.arange(1, 11))
ax.set_xticklabels([f'{i}年' for i in range(1, 11)], fontsize=9)
ax.set_yticks([])
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.spines['bottom'].set_visible(False)
ax.spines['left'].set_visible(False)
# 添加网格
ax.grid(True, axis='x', alpha=0.3, linestyle='--')
# 标题
plt.title('机械设备行业职业发展阶段时间轴', fontsize=16, fontweight='bold', pad=20)
# 调整布局
plt.tight_layout()
# 保存图片
plt.savefig('机械设备行业职业发展阶段时间轴图.png', dpi=300, bbox_inches='tight')
plt.close()
print("机械设备行业职业发展阶段时间轴图已生成完成")