{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a0743f64",
   "metadata": {},
   "source": [
    "# 28个智慧食堂项目功能使用分析\n",
    "\n",
    "## tl;dr\n",
    "\n",
    "- 历史线程里的“28”是28个在途事项，不是权威客户项目数。本分析重建28个候选：20个中央统计项目、5个近期独立项目、3个规划项目。\n",
    "- 17个数据库注册项目中，本次12个可连接、5个不可达；12个可连接项目中7个近30天有有效订单。\n",
    "- 7个有单项目合计445,164单、项目活跃用户之和16,089、订单流水¥7,035,219.63；消费机占91.9%。\n",
    "- 金斯瑞、机场、赛迪贡献97.5%的订单。非交易功能中取餐流程、取餐柜接口、后台审计、卡片、退款和报表有明确记录；健康与AI功能信号很弱。\n",
    "- 中央统计同期203,990单，低于生产库直连445,164单，不能替代直连用量判断。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4b43f0ce",
   "metadata": {},
   "source": [
    "## Context & Methods\n",
    "\n",
    "### Key Assumptions\n",
    "\n",
    "- 报告日为2026-08-03，排除2026-08-04未完整当日。\n",
    "- 有效订单优先使用`pay_status=20`、`order_status=30`、`is_delete=0`、`user_id>0`，按`meal_date`归属；字段不存在时按项目表结构降级。\n",
    "- 当前窗口为2026-07-05至2026-08-03，前一窗口为2026-06-05至2026-07-04。\n",
    "- 不可达、未映射与零记录分开；业务表记录不等于页面点击或独立用户。\n",
    "- 仅持久化项目级聚合，不保存凭据、个人信息、订单明细或原始生产payload。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "9f15a2f7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:04:30.572516Z",
     "iopub.status.busy": "2026-08-04T11:04:30.572449Z",
     "iopub.status.idle": "2026-08-04T11:04:31.222750Z",
     "shell.execute_reply": "2026-08-04T11:04:31.222098Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(28, 20, 17)"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from pathlib import Path\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "ROOT = Path.cwd()\n",
    "master = pd.read_csv(ROOT / 'project-master.csv')\n",
    "cards = pd.read_csv(ROOT / 'project-usage-cards.csv')\n",
    "portfolio = pd.read_csv(ROOT / 'portfolio-summary.csv')\n",
    "project_rank = pd.read_csv(ROOT / 'project-order-ranking.csv')\n",
    "channel_rank = pd.read_csv(ROOT / 'channel-ranking.csv')\n",
    "feature_rank = pd.read_csv(ROOT / 'feature-ranking.csv')\n",
    "central = pd.read_csv(ROOT / 'central-project-summary.csv')\n",
    "db_core = pd.read_csv(ROOT / 'db-project-status.csv')\n",
    "\n",
    "len(master), len(central), len(db_core)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b46cf49c",
   "metadata": {},
   "source": [
    "## Results\n",
    "\n",
    "### 1. 项目覆盖与数据可核验性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "3be9da78",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:04:31.224544Z",
     "iopub.status.busy": "2026-08-04T11:04:31.224438Z",
     "iopub.status.idle": "2026-08-04T11:04:31.230240Z",
     "shell.execute_reply": "2026-08-04T11:04:31.229768Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>metric</th>\n",
       "      <th>value</th>\n",
       "      <th>note</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>重建候选项目</td>\n",
       "      <td>28.00</td>\n",
       "      <td>不是当前权威主数据</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>中央统计已登记</td>\n",
       "      <td>20.00</td>\n",
       "      <td>其中部分同步失败</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>数据库注册</td>\n",
       "      <td>17.00</td>\n",
       "      <td>有连接配置</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>本次数据库可连接</td>\n",
       "      <td>12.00</td>\n",
       "      <td>生产库只读</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>近30天有有效订单</td>\n",
       "      <td>7.00</td>\n",
       "      <td>2026-07-05 至 2026-08-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>数据库不可达</td>\n",
       "      <td>5.00</td>\n",
       "      <td>不可解释为零使用</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>近30天有效订单</td>\n",
       "      <td>445164.00</td>\n",
       "      <td>7个有单项目合计</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>近30天项目活跃用户之和</td>\n",
       "      <td>16089.00</td>\n",
       "      <td>跨项目未去重</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>近30天订单流水</td>\n",
       "      <td>7035219.63</td>\n",
       "      <td>不等于收入/回款</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>中央统计同期订单</td>\n",
       "      <td>203990.00</td>\n",
       "      <td>比直连少，存在同步覆盖差异</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         metric       value                     note\n",
       "0        重建候选项目       28.00                不是当前权威主数据\n",
       "1       中央统计已登记       20.00                 其中部分同步失败\n",
       "2         数据库注册       17.00                    有连接配置\n",
       "3      本次数据库可连接       12.00                    生产库只读\n",
       "4     近30天有有效订单        7.00  2026-07-05 至 2026-08-03\n",
       "5        数据库不可达        5.00                 不可解释为零使用\n",
       "6      近30天有效订单   445164.00                 7个有单项目合计\n",
       "7  近30天项目活跃用户之和    16089.00                   跨项目未去重\n",
       "8      近30天订单流水  7035219.63                 不等于收入/回款\n",
       "9      中央统计同期订单   203990.00            比直连少，存在同步覆盖差异"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "portfolio"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "eb957805",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:04:31.231630Z",
     "iopub.status.busy": "2026-08-04T11:04:31.231540Z",
     "iopub.status.idle": "2026-08-04T11:04:31.323170Z",
     "shell.execute_reply": "2026-08-04T11:04:31.322630Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 37325 (\\N{CJK UNIFIED IDEOGRAPH-91CD}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 24314 (\\N{CJK UNIFIED IDEOGRAPH-5EFA}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 20505 (\\N{CJK UNIFIED IDEOGRAPH-5019}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 36873 (\\N{CJK UNIFIED IDEOGRAPH-9009}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 20013 (\\N{CJK UNIFIED IDEOGRAPH-4E2D}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 22830 (\\N{CJK UNIFIED IDEOGRAPH-592E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 30331 (\\N{CJK UNIFIED IDEOGRAPH-767B}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 35760 (\\N{CJK UNIFIED IDEOGRAPH-8BB0}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 25454 (\\N{CJK UNIFIED IDEOGRAPH-636E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 24211 (\\N{CJK UNIFIED IDEOGRAPH-5E93}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 27880 (\\N{CJK UNIFIED IDEOGRAPH-6CE8}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 20876 (\\N{CJK UNIFIED IDEOGRAPH-518C}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 21487 (\\N{CJK UNIFIED IDEOGRAPH-53EF}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 36830 (\\N{CJK UNIFIED IDEOGRAPH-8FDE}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 25509 (\\N{CJK UNIFIED IDEOGRAPH-63A5}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 36817 (\\N{CJK UNIFIED IDEOGRAPH-8FD1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 22825 (\\N{CJK UNIFIED IDEOGRAPH-5929}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 26377 (\\N{CJK UNIFIED IDEOGRAPH-6709}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 23618 (\\N{CJK UNIFIED IDEOGRAPH-5C42}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 32423 (\\N{CJK UNIFIED IDEOGRAPH-7EA7}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 39033 (\\N{CJK UNIFIED IDEOGRAPH-9879}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 30446 (\\N{CJK UNIFIED IDEOGRAPH-76EE}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 35206 (\\N{CJK UNIFIED IDEOGRAPH-8986}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 30422 (\\N{CJK UNIFIED IDEOGRAPH-76D6}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 28431 (\\N{CJK UNIFIED IDEOGRAPH-6F0F}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/4013566892.py:10: UserWarning: Glyph 26007 (\\N{CJK UNIFIED IDEOGRAPH-6597}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 39033 (\\N{CJK UNIFIED IDEOGRAPH-9879}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 30446 (\\N{CJK UNIFIED IDEOGRAPH-76EE}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35206 (\\N{CJK UNIFIED IDEOGRAPH-8986}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 30422 (\\N{CJK UNIFIED IDEOGRAPH-76D6}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 28431 (\\N{CJK UNIFIED IDEOGRAPH-6F0F}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26007 (\\N{CJK UNIFIED IDEOGRAPH-6597}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 37325 (\\N{CJK UNIFIED IDEOGRAPH-91CD}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 24314 (\\N{CJK UNIFIED IDEOGRAPH-5EFA}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20505 (\\N{CJK UNIFIED IDEOGRAPH-5019}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36873 (\\N{CJK UNIFIED IDEOGRAPH-9009}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20013 (\\N{CJK UNIFIED IDEOGRAPH-4E2D}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22830 (\\N{CJK UNIFIED IDEOGRAPH-592E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 30331 (\\N{CJK UNIFIED IDEOGRAPH-767B}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35760 (\\N{CJK UNIFIED IDEOGRAPH-8BB0}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25454 (\\N{CJK UNIFIED IDEOGRAPH-636E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 24211 (\\N{CJK UNIFIED IDEOGRAPH-5E93}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 27880 (\\N{CJK UNIFIED IDEOGRAPH-6CE8}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20876 (\\N{CJK UNIFIED IDEOGRAPH-518C}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21487 (\\N{CJK UNIFIED IDEOGRAPH-53EF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36830 (\\N{CJK UNIFIED IDEOGRAPH-8FDE}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25509 (\\N{CJK UNIFIED IDEOGRAPH-63A5}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36817 (\\N{CJK UNIFIED IDEOGRAPH-8FD1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22825 (\\N{CJK UNIFIED IDEOGRAPH-5929}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26377 (\\N{CJK UNIFIED IDEOGRAPH-6709}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 23618 (\\N{CJK UNIFIED IDEOGRAPH-5C42}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 32423 (\\N{CJK UNIFIED IDEOGRAPH-7EA7}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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8yrLIyD07Nmz2XOjA3enTp1ymZZcfPHFaeLEiessX7JkSc2crA5qEC02JN4v3tph3/lvm2c97jt3jO0DAK2gfJG+LoJFhId//Md/TC+++GL61a9+lbbYYovKY1tuuWWzplFh8eLFafXq1alPnz4tvt6ECRPSOeec02xjxIhT8VoNDQ2pFsxvrI2AU8vi/eKt2YfsPwDwTmjacqimg8XKlSvTRz/60fT000/nUBH9LpraY4890rXXXpuWLVtWCRzRobv8WEu6deuWby1tlE3ZMJuTWLFhtfJe1Sr70PrZfwDgnf9OrVrn7VWrVuVQEXNZRKjYfvvt13nOMccck7p06ZKuueaa/Hs0Zfq3f/u3PPRsDE0LAADUhqrVWFx66aXp7rvvTvvtt1/6whe+UFneq1evNHny5PxzjAgVP8dQtD//+c9zM6iovYjRogAAgNpRtWBx9NFHp2HDhq2zfO25KaL/RQw3O3PmzNzEafTo0bkDNwAAUDuqFiyGDx+ebxujb9++ecZtAACgNlWtjwUAANB2CBYAAEBhggUAAFCYYAEAABQmWAAAAIUJFgAAQGGCBQAAUJhgAQAAFCZYAAAAhQkWAABAYYIFAABQmGABAAAUJlgAAACFCRYAAEBhggUAAFCYYAEAABQmWAAAAIUJFgAAQGGCBQAAUJhgAQAAFCZYAAAAhQkWAABAYYIFAABQmGABAAAU1rn4SwBQT7Y789Zqr0LNWzjpuGqvAkDbDRarV69OP/rRj9Krr76af29sbExbbrll/nnFihVp0aJFabvttqs8v0+fPumUU05JXbt23RzrDQAA1GOwmDJlSjr99NObLYvQ0KlTp/Tmm2+mVatWrVNm6dKlafz48a2zpgAAQP0Hi1deeSWNHj063XTTTTlIRC3F1ltvXXn8pZdeSttuu21auXJlOu2009J9992XlwEAAG3fJnXeHjVqVNphhx3Sd7/73XTLLbekvn375jDx2GOPpREjRuSfBw0alMaOHZvvI3wAAABt3yYFiw4dOuT7YcOGpSFDhqSjjz46//7BD34wB46yeOzkk09O3bp1a+31BQAA6jlYvPDCC5VgEQYMGJCbQj3wwAP59y5dulQe6927d5o/f35rrysAAFDvwaJjx47pb3/7W/55zpw5+f7MM89M1157bXr66adz34oZM2ak1157LT9v55133nxrDQAA1GewiMAwadKkdOONN6YnnngiL4vhZmM0qGgKtWDBgnTSSSeliRMnplKplObOnbs51xsAAKjHUaEaGhrSYYcdlvtVLFy4sDK3xe23355/PvTQQ/M8F88//3yaNWtWmj59ejrwwAM335oDAAD1FywGDhyYOnfunPtPRI1E3Jr2uYhRoOI2ePDg9OKLL+bJ8tRaAABA+7BJo0KVDR06NF166aVpxx13bNa5O8JGec6LefPmNRspCgAAaLs2usYivP766/l+3LhxuelT05Ggzj///LRmzZrcyTv6YETQ6NevX+uvMQAAUN/BYvLkybmzdsxPsXz58nzfvXv3PALUokWL0tSpU/PoUDF5XmjaVAoAAGi7NjpYHHDAAbmz9nXXXVdZFsEiaihidKho/vTmm29WHovajKjVAAAA2r6NDhb77LNPZY6KjdGzZ8/Uo0ePIusGAAC0xaZQ0ewpbq0lajh+/vOf5yZUMerU5Zdf3uzxN954Ix177LHrlPvSl76kNgQAAOoxWEQzqJin4tVXX82/NzY25iZQYcWKFbmPRQwxW9anT590yimnpK5du7b4etFXI0aX2nvvvdPSpUvTs88+22LwuOeee9Jll12Wdt1118rypj8DAAB1FCymTJmSTj/99GbLIjR06tQpB4AICmuLwDB+/PgWXy/KzZw5M/Xv3z+dffbZ6de//vVb/u399tsvjRw5cmNXFQAAqNVgEZ2zR48enW666aYcJKKWYuutt648/tJLL6Vtt902jwp12mmnpfvuuy8veyvR6TtCxca46KKLckfxqOGIWhA1FgAAUMd9LEaNGpUnvTvjjDNyiPjmN7+ZR3/65S9/mQ477LDKBHljx45Ns2fPzuGjqF122SWPSBUhZNq0aWnEiBHpjjvuyH+jJfE3m/7daLIVyrOF1wKD8G5YrbxXtco+tH72H/tPUfYhgE0/Hm5SsCjPSzFs2LC01VZbpaOPPjqf7H/wgx9sNsv2kCFD0sknn5xrL4qIUaUeeeSR1KtXr/z7xz/+8RxkzjrrrDRnzpwWy1x88cVp4sSJ6yxfsmRJzXxRDGpwWrgh8X5hH3q77D+OQUXZhwCaX6Rv1WARM2l37vz/nz5gwIDcFOqBBx5IhxxySLNZuHv37p3mz5+fazWKiH4Y5VBRdtRRR6Uf//jHeejbCDdrmzBhQjrnnHOabYxBgwbljuYNDQ2pFsxvrI2AU8vKAwPQMvuQ/acI+49jEMDG2pQJrzc6WESfiPIcFlFbMHz48HTmmWemK6+8Mg0ePDjXTsyYMSP3f4jnxWzc0Xm7tUWgiH+wachpKvpixG1tUaZWZgIXKzasVt6rWmUfWj/7j/2nKPsQwKYfDztuygn9pEmT0o033pieeOKJylXlGA0qmkItWLAgnXTSSbkZUjQ5mjt3bioq+m785S9/qfy+cOHCPPTsmDFjcq0IAABQGza6xiKaEUUH7ehXESf45bktbr/99vzzoYcemue5eP7559OsWbPS9OnT04EHHrje14y+EvPmzctBJebB+PCHP5yX33bbbXkivpgL44QTTsijUMXP0d9i//33TzfccEOx/xoAAKhOsIiZsaP5UdQUlEdYalo1Ev0Y4hbNol588cU8Wd6Gai0iNLTUIaTcX2OfffZJDz30UHryySfTyy+/nHbaaaf8NwAAgNqySaNClcV8Epdeemm68847m3XuLoeNmPMiaiKiidT6xDCyG9O3Y/fdd387qwkAANRisHj99dfz/bhx43LTp6YjQZ1//vlpzZo1OQhE06YIGv369Wv9NQYAAOo7WEyePDl31o5Rl5YvX57voy9EjAAVfSSmTp2aR4e65ZZb8vONqgEAAO3DRgeLaLYUnbWvu+66yrIIFlFDEaNDRfOn6GRdFrUZUasBAAC0fRsdLKIjdQw5W57LYkN69uyZZ84GAADavk1qChXNnuIGAADwtoJFNIOKeSpeffXV/HsMExtNoMKKFStyH4sYYrYs5p045ZRTUteuXTf2TwAAAG09WEyZMiWdfvrpzZZFaOjUqVPuWxGdute2dOnSNH78+NZZUwAAoP6DRXTOHj16dLrppptykIhaiq233rry+EsvvZS23XbbPCrUaaedlu677768DAAAaPs6bsqTR40alXbYYYf03e9+Nw8p27dv3xwmHnvssTRixIj8c8yMPXbs2Hwf4QMAAGj7NilYlOelGDZsWBoyZEg6+uij8+8xw3YEjrJ47OSTT87D0QIAAG3fRgeLmEm76YR3AwYMyE2hHnjggfx701m4e/funebPn9/a6woAANR7sIiJ8MpzWMyZMyffn3nmmenaa69NTz/9dO5bMWPGjMpcFzEbNwAA0D5sdLCIwDBp0qR04403pieeeCIvi+FmYzSoaAq1YMGCdNJJJ6WJ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bkf7UM133m4vYoK6M888M73yyivNls+YMaPy89577506d/77WxaT/R122GHpggsuaBPlKe76669PP/7xj5sdgN5444306KOP5u0d3alGjhxZeWyLLbbIwzfvtddebaI86xcj6p1xxhlp3rx5b/kZfc973pN69erVbC6hq666KnXq1Kndl28P7rnnnnTppZemFStWvOU+0vQzGJ2mv/zlL6cjjzxS+VbYfvXszTffTJ///Ofz8bqphx56KD8Wdtppp/Sud72r8tiOO+6Yrr322jwCaHmSuh/84Afpf//3f/Mxf5999kn//M//vM6EyP/5n/+ZpkyZkpYtW5b233//9JWvfKVy3Cq6HvVeviZE522q75JLLolO9KWzzz679Lvf/a40Y8aMfPv0pz9d+tznPld66aWXKsumT59e2muvvfLzly1b1ibKU1z//v1Lffv2Ld1zzz3NtnXPnj1Ljz/+eOmpp56qLL/hhhvy9j/99NPbTHnWb+rUqXmbnXTSSaXf/va3lW359a9/vXTUUUeVFixYUPr973+fl/36178ujR07Nj9/1qxZyrcT+++/f6lz586lm2++ubJ/xG3IkCGlu+++u/TMM89Ult1xxx35s3nwwQcr30rbr5798Y9/zMeLgw46qPTggw9W/s8f/vCHpT333LP03HPPlR5++OG8LI4/p556an7+nXfeWXmNUaNGlc4777zSL37xi9LPfvaz0r777lt697vfXXrjjTcqz5k0aVKpe/fupauvvrp0++23l97znvfkv7lmzZpWWY96L18L1FjUiFWrVuX7U089NQ0fPjxfHYxZDuOKxjPPPJPTaTmhxnM//OEPpz/+8Y+VBFvv5WmdfShmpD/iiCPyZJJx5b9Hjx75Clpc8enfv3/lefvuu28655xzKu9bWyjPhveP8LGPfSyNGjWq8hmNz+X//M//5O3bdBsff/zxadq0aZVy7b18exD/64ABA9KJJ56Yfy9vo4suuihfFY0rpXFbs2ZNfvzd7373Op9h5d/+9qtn5f8jJjb+wAc+UPnfd95551yDE/tFzEdWfm4c32+44YZm//9///d/p549e1Z+32WXXdIee+yRHn/88dziIc4XvvnNb6avf/3ruSajvA3jdt9996XDDz+88HrUe/laIFjUmKj+ix3kIx/5SKXZ0COPPJJ++MMf5p/jgxU7WZyAtcXy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",
      "text/plain": [
       "<Figure size 800x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "coverage = pd.DataFrame({\n",
    "    '层级': ['重建候选','中央登记','数据库注册','数据库可连接','近30天有订单'],\n",
    "    '项目数': [28,20,17,12,7],\n",
    "})\n",
    "ax = coverage.plot.bar(x='层级', y='项目数', legend=False, figsize=(8,4), color='#1769aa')\n",
    "ax.set_title('项目覆盖漏斗')\n",
    "ax.set_ylabel('项目数')\n",
    "ax.grid(axis='y', alpha=.2)\n",
    "plt.xticks(rotation=0)\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e1d8931c",
   "metadata": {},
   "source": [
    "### 2. 哪些项目贡献真实用量"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8d47601a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:04:31.324383Z",
     "iopub.status.busy": "2026-08-04T11:04:31.324277Z",
     "iopub.status.idle": "2026-08-04T11:04:31.402684Z",
     "shell.execute_reply": "2026-08-04T11:04:31.402347Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 39318 (\\N{CJK UNIFIED IDEOGRAPH-9996}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 36890 (\\N{CJK UNIFIED IDEOGRAPH-901A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 26234 (\\N{CJK UNIFIED IDEOGRAPH-667A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 22478 (\\N{CJK UNIFIED IDEOGRAPH-57CE}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 24935 (\\N{CJK UNIFIED IDEOGRAPH-6167}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 33829 (\\N{CJK UNIFIED IDEOGRAPH-8425}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 20859 (\\N{CJK UNIFIED IDEOGRAPH-517B}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 20581 (\\N{CJK UNIFIED IDEOGRAPH-5065}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 24247 (\\N{CJK UNIFIED IDEOGRAPH-5EB7}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 39184 (\\N{CJK UNIFIED IDEOGRAPH-9910}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 21381 (\\N{CJK UNIFIED IDEOGRAPH-5385}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 23665 (\\N{CJK UNIFIED IDEOGRAPH-5C71}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 35199 (\\N{CJK UNIFIED IDEOGRAPH-897F}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 28966 (\\N{CJK UNIFIED IDEOGRAPH-7126}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 29028 (\\N{CJK UNIFIED IDEOGRAPH-7164}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 20135 (\\N{CJK UNIFIED IDEOGRAPH-4EA7}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 19994 (\\N{CJK UNIFIED IDEOGRAPH-4E1A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 22253 (\\N{CJK UNIFIED IDEOGRAPH-56ED}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 23486 (\\N{CJK UNIFIED IDEOGRAPH-5BBE}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 39302 (\\N{CJK UNIFIED IDEOGRAPH-9986}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 36187 (\\N{CJK UNIFIED IDEOGRAPH-8D5B}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 36842 (\\N{CJK UNIFIED IDEOGRAPH-8FEA}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 29289 (\\N{CJK UNIFIED IDEOGRAPH-7269}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 26426 (\\N{CJK UNIFIED IDEOGRAPH-673A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 22330 (\\N{CJK UNIFIED IDEOGRAPH-573A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 37329 (\\N{CJK UNIFIED IDEOGRAPH-91D1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 26031 (\\N{CJK UNIFIED IDEOGRAPH-65AF}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 29790 (\\N{CJK UNIFIED IDEOGRAPH-745E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 36817 (\\N{CJK UNIFIED IDEOGRAPH-8FD1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 22825 (\\N{CJK UNIFIED IDEOGRAPH-5929}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 26377 (\\N{CJK UNIFIED IDEOGRAPH-6709}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/1819241518.py:7: UserWarning: Glyph 25928 (\\N{CJK UNIFIED IDEOGRAPH-6548}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 39318 (\\N{CJK UNIFIED IDEOGRAPH-9996}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36890 (\\N{CJK UNIFIED IDEOGRAPH-901A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26234 (\\N{CJK UNIFIED IDEOGRAPH-667A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22478 (\\N{CJK UNIFIED IDEOGRAPH-57CE}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 24935 (\\N{CJK UNIFIED IDEOGRAPH-6167}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 33829 (\\N{CJK UNIFIED IDEOGRAPH-8425}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20859 (\\N{CJK UNIFIED IDEOGRAPH-517B}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20581 (\\N{CJK UNIFIED IDEOGRAPH-5065}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 24247 (\\N{CJK UNIFIED IDEOGRAPH-5EB7}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 39184 (\\N{CJK UNIFIED IDEOGRAPH-9910}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21381 (\\N{CJK UNIFIED IDEOGRAPH-5385}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 23665 (\\N{CJK UNIFIED IDEOGRAPH-5C71}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35199 (\\N{CJK UNIFIED IDEOGRAPH-897F}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 28966 (\\N{CJK UNIFIED IDEOGRAPH-7126}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 29028 (\\N{CJK UNIFIED IDEOGRAPH-7164}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20135 (\\N{CJK UNIFIED IDEOGRAPH-4EA7}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 19994 (\\N{CJK UNIFIED IDEOGRAPH-4E1A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22253 (\\N{CJK UNIFIED IDEOGRAPH-56ED}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 23486 (\\N{CJK UNIFIED IDEOGRAPH-5BBE}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 39302 (\\N{CJK UNIFIED IDEOGRAPH-9986}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36187 (\\N{CJK UNIFIED IDEOGRAPH-8D5B}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36842 (\\N{CJK UNIFIED IDEOGRAPH-8FEA}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 29289 (\\N{CJK UNIFIED IDEOGRAPH-7269}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26426 (\\N{CJK UNIFIED IDEOGRAPH-673A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22330 (\\N{CJK UNIFIED IDEOGRAPH-573A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 37329 (\\N{CJK UNIFIED IDEOGRAPH-91D1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26031 (\\N{CJK UNIFIED IDEOGRAPH-65AF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 29790 (\\N{CJK UNIFIED IDEOGRAPH-745E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36817 (\\N{CJK UNIFIED IDEOGRAPH-8FD1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22825 (\\N{CJK UNIFIED IDEOGRAPH-5929}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26377 (\\N{CJK UNIFIED IDEOGRAPH-6709}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25928 (\\N{CJK UNIFIED IDEOGRAPH-6548}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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/RIAAKqeET0AAIDMCHoAAACZEfQAAAAyI+gBAABkRtADAADIjKAHAACQGUEPAAAgM1sk6K1du1Z59Ve1xw8AAFT0gunjxo0Lv/vd78KaNWtK25YsWRLuvffe0L9//7BixYpw0EEHlZ7r2LFj+O53v5ueU179VfrxAwAAWQa9M888MyxdujRccskloWvXrmnb4sWLU0f58ssvD23btg3z5s1L25955plwwQUXhPbt24fRo0crr/4q/vgBAIAsg97y5cvTiMdXv/rVNCpSKBRCixYt0qVvH/rQh0JtbW1p3+OOOy51qGMZ5dVfDscPAABkGfSiZs3+c1vfAw88EC677LLQoUOHMHv27DBq1Kiw1157peemT58err766tK+yqu/XI4fAADIMujNmjUrrFq1Klx55ZXhiiuuCG3atCk9F0dIJk+eHFavXh122WWXdFnc1KlTlVd/2Rw/dcV7+uKjaOHChZt6OgEAwFaxSUMWcYSjX79+oWXLlmlii3hPU7y0LT6effbZMHTo0DTZRbwMLo6U9OzZM+yxxx7Kq78sjp91xVHATp06lR59+/bd9DMQAACaekQv3s/UuXPn0s+9e/dOX4888sjUKb7hhhtK26J471McJVFe/eVw/KxrxIgRYdiwYfVG9IQ9AAAqbkQvdpJjZzlerjZnzpwwd+7c9IgjIkcddVRo3bp12v6DH/wgLFu2LF36Fu93Ul795XD8rCvuHydwqfsAAICKG9GLIxaLFi0KCxYsCF/+8pfDoEGD0kQW8bK38847L1x66aWlfT/96U+ne53iQ3n1l8PxAwAA2S6v8M4774QePXqEe+65J23729/+Fl544YVw9tlnh5NPPrnBiMd2222nvPrL4vgBAIBsZ92MHeW6DjzwwPDtb387HH300fW2x0vf6s5IqLz6y+H4AQCALIPe3//+9zB48OA0KhJnJ4yjIbvuumu47bbb0v1OcXtcoyzuF6exV1795XT8AABAdkFvxx13DE8//XR4/PHH06QWd955Z7q8bbfddit1muP6Y3fccUdp5CROZ6+8+svh+AEAgEpRU9jQ/PHrePvtt8Ojjz6app2PXnzxxdC/f/9QU1OT1iYrihNYxI50nIVwyJAhaf0y5dVfpR8/GxMne4nr6fU4dWyoadUuVKtZY04IOYtvmXFCn9jW8dghX9q6emjr6qGtq0ch08/r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IF7/P2zYsPT11ltvDR/84AfDkiVL0vPx69y5c9fbjrF9G3sftv75WXyuHPfh/Yl/MPnc5z4XvvWtb4VTTjkl3HvvvWGvvfYK8+fPT88X35PXV/+vvfZao+/DexPvwR0wYEAYOHBgvfNkQ++h5bYPG7dw4cIwevTo9Iev4h9Hop122ind33ruueeG/v37p/sgL7744tLzsY7jH4KKfxAofubHsF23jWobaZ9y1KKpXwBUsvjXp3X/AhlHGorP0fRix69uG8WRvfjhEW+o/r//+79SO62vHYvPNeY+NO75WW778P6cfvrp9eo2TpYQz/PLLrssfP/7309/iY8TKayv/uP2+HwMaI21TwymbFiclOX+++8PjzzySKm+yu392nv65ot1GCeyiyO6cXKTuuJIWbH+46QtnTp1Ct/5znfCWWedlULX+t5T19dGrRtpn3JkRA82Q9euXRvMrhVHbKJu3bqp2zKw7hvzNttsE/bee+8041fUsWPH9Fe59bVjsQ0bcx8a9/wst33YMud57AQecMABpfM8diLj+be++o+dxxgkGnMfNmzUqFHhpz/9abjrrrvCfvvtV9oez6FoQ++h5bYPGw95U6dODQ899FDo0qXLBs/rGPZimTgLb7H+33nnnQaXe67bRu800j7lSNCDzbDvvvuGJ554ot62eH9eHMr/wAc+oG7LeEmM4j0CsdO15557rrcd99lnn0bfhy17fj755JMN6jp2wuNlQOW4D1vnPC/W/8bOvcbch/X70Y9+lO6lvvPOO9NyBXXtsssuqU3r1m3seMfzqli35bYP6xeXJTjppJPSH2P++te/hr59+76nczoqntfxPIu/Jy5ZVPee/Bi8i/W/byPuU5aaejYYqGT//Oc/04xLf/jDH9LPM2fOLHzgAx9IU75THi6++OK0DEZx5ruf/OQnaRa3hx56qLTPmDFjCrW1tWnK/mj8+PFpuuzbb7+9SfZh07zbrJsvvPBCmiXt+uuvL82GF6drrztDXrntw4a926yb8byeP39+6ee4TzzP46x4RXFK9Lg8Q3zfjp588slCmzZt6s3q15j7UFhvO7Zr1y7NtvluTj/99MKAAQMKc+fOTT9fddVV6T10ypQpZbsPDWdYPe6449L736uvvrre6nn00UcL9913X+nnWbNmFfbff/80e23d2WzjrMXHHntsYc2aNWnbl770pfR7i7Myr23EfcqRoAebKb6pxw+mnXbaKX2QxzeBZcuWqdcycdlllxV69eqV1i+LX7fddtu0PlNd8Q38rLPOKrRq1Sp9YMcp8OOaiE21D+9NXDYjPmJwjmsbxe+POeaYevvEDneHDh3SEhax4/2pT32qwdTe5bYP9T333HOltm7WrFnqWMXvzz333NI+V199dVrTauDAgelrnKb9mmuuaVCVw4cPL5178Wv8uSn34b+mTZuWwnlsu2J7Fx+PPPJIab+FCxcWjjzyyPS5G8+juMTRuu/p5bYP9d1www2preO6ieu2dfEPNq+//nrhf//3f9M6szFgxf5VfL985ZVX6v2uF198MS1xEY+b+Bm/ww47FJ566qkm26fc1MT/NPWoIlS6OF1/vMa8R48eLtksQ3Hyg9g+cRmMPn36hGbN1n/V+ttvv52my95hhx0a3CvQFPuwYRMnTmywLd7Tse5lNEuXLk1ToMf7KLbbbrv1/q5y24f6769xCYp1xftt44QrRXGik3iex2Mg1uu7nefxnpo4S97222//rvfWNOY+/Mfy5cvrXRZXV7xEct33yTiDabxsLs7KWXeJo3Leh/9+/sXLHtcn3pMZ73MtijPnxlls4zkd73Fdnxhl/vWvf6X3gDhD6/rO/UIj7lNOBD0AAIDMlHcMBQAAYJMJegAAAJkR9AAAADIj6AEAAGRG0AMAAMiMoAcAAJAZQQ8AACAz/12REABgPV555ZXwj3/8Iy0WXHfR47iwccuWLdPiwbW1tfUWMx8yZEjZlAeoRhZMBwDe1cqVK0PPnj3D4sWLw6c+9anQrl27tP3pp58OL730UjjssMNChw4d0iMGsaeeeipMnTo13HTTTeHzn/98k5cHqFZG9ACAd7Vo0aIwf/788OUvfzlcf/31pe3z5s0L9957b/jCF75Qb/8YsgYMGBBmzJhRFuUBqpWgBwBsVBwxix544IEwZ86cUFNTE2688cbw2muvhX79+qXnpkyZEk455ZSyLA9QbUzGAgBsVLyEcvny5eEnP/lJuowyPo4//vjQo0eP9P2bb74ZXn755TT6FsVt5VQeoNoY0QMANqh58+ZpBC2GrWuuuSaFqXg/XNy+atWqcMstt4SJEyeGv/zlL+mSyqh4L105lAeoRoIeALBBMVDF4BRntoyPvn37pu1f+9rXwltvvRU+85nPhJEjR6YZMKNWrVqFZs2alU15gGok6AEAGxSXK+jfv3+D7ffcc096DBw4MP383HPPhe7du6dQVncphKYuD1CNBD0AYIPimnXxnre4lt0PfvCD0Llz5zBr1qz0GDp0aGjbtm1YvXp1mDBhQpg8eXK6tHLmzJllUx6gGgl6AMAGxfvgXn/99bD77ruH3/72t6F9+/Zh2bJlYdCgQeHcc88N++yzT2nfeC9d1KdPn7IpD1CNBD0AYKPWrFlTb4KTO++8M+y3337p0atXr9L2dxtJa+ryANVG0AMANur2228PO++8c9hxxx1Dp06dQuvWrcNZZ50V/vWvf6WlDeLlknFilLvvvrssywNUG0EPAHhXMVDFGSzj/XDDhg0LO+20U7pkcvr06eHwww9PwevFF18M22+/fVr6IK5lFxVH35q6PEC1qimYlgoA2IDrrrsu3H///en7GLimTp2aRtfqXjIZxfvm4sQoPXv2TMsdxJG3cigPUI0EPQAAgMxYTRQAACAzgh4AAEBmBD0AAIDMCHoAAACZEfQAAAAyI+gBAABkRtADAADIjKAHAACQGUEPAAAg5OX/A9HGhrIRj1kUAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 900x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>project</th>\n",
       "      <th>orders</th>\n",
       "      <th>active_users</th>\n",
       "      <th>amount</th>\n",
       "      <th>order_share</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>金斯瑞智慧营养健康餐厅</td>\n",
       "      <td>259201</td>\n",
       "      <td>6459</td>\n",
       "      <td>3271050.13</td>\n",
       "      <td>0.582260</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>机场智慧营养健康餐厅</td>\n",
       "      <td>148050</td>\n",
       "      <td>7123</td>\n",
       "      <td>3088026.00</td>\n",
       "      <td>0.332574</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>赛迪物业智慧营养健康餐厅</td>\n",
       "      <td>26703</td>\n",
       "      <td>1862</td>\n",
       "      <td>493199.04</td>\n",
       "      <td>0.059985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>西康宾馆智慧营养健康餐厅</td>\n",
       "      <td>7589</td>\n",
       "      <td>236</td>\n",
       "      <td>39072.77</td>\n",
       "      <td>0.017048</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>产业园智慧营养健康餐厅</td>\n",
       "      <td>2425</td>\n",
       "      <td>223</td>\n",
       "      <td>24642.69</td>\n",
       "      <td>0.005447</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>山西焦煤智慧营养健康餐厅</td>\n",
       "      <td>1131</td>\n",
       "      <td>149</td>\n",
       "      <td>118689.00</td>\n",
       "      <td>0.002541</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>首通智城智慧营养健康餐厅</td>\n",
       "      <td>65</td>\n",
       "      <td>37</td>\n",
       "      <td>540.00</td>\n",
       "      <td>0.000146</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        project  orders  active_users      amount  order_share\n",
       "0   金斯瑞智慧营养健康餐厅  259201          6459  3271050.13     0.582260\n",
       "1    机场智慧营养健康餐厅  148050          7123  3088026.00     0.332574\n",
       "2  赛迪物业智慧营养健康餐厅   26703          1862   493199.04     0.059985\n",
       "3  西康宾馆智慧营养健康餐厅    7589           236    39072.77     0.017048\n",
       "4   产业园智慧营养健康餐厅    2425           223    24642.69     0.005447\n",
       "5  山西焦煤智慧营养健康餐厅    1131           149   118689.00     0.002541\n",
       "6  首通智城智慧营养健康餐厅      65            37      540.00     0.000146"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rank = project_rank.sort_values('orders')\n",
    "ax = rank.plot.barh(x='project', y='orders', legend=False, figsize=(9,4.8), color='#1769aa')\n",
    "ax.set_title('近30天有效订单')\n",
    "ax.set_xlabel('订单数')\n",
    "ax.set_ylabel('')\n",
    "ax.grid(axis='x', alpha=.2)\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "project_rank"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "61e09479",
   "metadata": {},
   "source": [
    "### 3. 哪些功能入口使用最多"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "aae87443",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:04:31.404179Z",
     "iopub.status.busy": "2026-08-04T11:04:31.404094Z",
     "iopub.status.idle": "2026-08-04T11:04:31.460341Z",
     "shell.execute_reply": "2026-08-04T11:04:31.459869Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 20854 (\\N{CJK UNIFIED IDEOGRAPH-5176}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 20182 (\\N{CJK UNIFIED IDEOGRAPH-4ED6}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 34394 (\\N{CJK UNIFIED IDEOGRAPH-865A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 25311 (\\N{CJK UNIFIED IDEOGRAPH-62DF}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 19978 (\\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 39184 (\\N{CJK UNIFIED IDEOGRAPH-9910}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 38392 (\\N{CJK UNIFIED IDEOGRAPH-95F8}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 26426 (\\N{CJK UNIFIED IDEOGRAPH-673A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 32465 (\\N{CJK UNIFIED IDEOGRAPH-7ED1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 30424 (\\N{CJK UNIFIED IDEOGRAPH-76D8}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 22806 (\\N{CJK UNIFIED IDEOGRAPH-5916}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 37096 (\\N{CJK UNIFIED IDEOGRAPH-90E8}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 25509 (\\N{CJK UNIFIED IDEOGRAPH-63A5}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 20837 (\\N{CJK UNIFIED IDEOGRAPH-5165}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 28040 (\\N{CJK UNIFIED IDEOGRAPH-6D88}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 36153 (\\N{CJK UNIFIED IDEOGRAPH-8D39}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 36817 (\\N{CJK UNIFIED IDEOGRAPH-8FD1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 22825 (\\N{CJK UNIFIED IDEOGRAPH-5929}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 21151 (\\N{CJK UNIFIED IDEOGRAPH-529F}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 33021 (\\N{CJK UNIFIED IDEOGRAPH-80FD}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/571187470.py:7: UserWarning: Glyph 21475 (\\N{CJK UNIFIED IDEOGRAPH-53E3}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20854 (\\N{CJK UNIFIED IDEOGRAPH-5176}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20182 (\\N{CJK UNIFIED IDEOGRAPH-4ED6}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 34394 (\\N{CJK UNIFIED IDEOGRAPH-865A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25311 (\\N{CJK UNIFIED IDEOGRAPH-62DF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 32447 (\\N{CJK UNIFIED IDEOGRAPH-7EBF}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 19978 (\\N{CJK UNIFIED IDEOGRAPH-4E0A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 39184 (\\N{CJK UNIFIED IDEOGRAPH-9910}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 38392 (\\N{CJK UNIFIED IDEOGRAPH-95F8}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26426 (\\N{CJK UNIFIED IDEOGRAPH-673A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 32465 (\\N{CJK UNIFIED IDEOGRAPH-7ED1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 30424 (\\N{CJK UNIFIED IDEOGRAPH-76D8}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22806 (\\N{CJK UNIFIED IDEOGRAPH-5916}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 37096 (\\N{CJK UNIFIED IDEOGRAPH-90E8}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25509 (\\N{CJK UNIFIED IDEOGRAPH-63A5}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20837 (\\N{CJK UNIFIED IDEOGRAPH-5165}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 28040 (\\N{CJK UNIFIED IDEOGRAPH-6D88}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36153 (\\N{CJK UNIFIED IDEOGRAPH-8D39}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36817 (\\N{CJK UNIFIED IDEOGRAPH-8FD1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22825 (\\N{CJK UNIFIED IDEOGRAPH-5929}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21151 (\\N{CJK UNIFIED IDEOGRAPH-529F}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 33021 (\\N{CJK UNIFIED IDEOGRAPH-80FD}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21475 (\\N{CJK UNIFIED IDEOGRAPH-53E3}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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/36YOnVqCmmPPvpo2hZvL730UupxW9pwzK9TP4a8Xr16hfXXX3+Zr2/w4MGpV3D//fevsX2//fYr9fABAACsqOyHbkbFSVCuvPLK8N5774WWLVumnrj4+1133ZUeGzZsWLjuuutS2XgNXV3VHzp0aNh6662/9LXddttt4fjjjw/NmtX859hmm23C2LFjw0cffRTWW2+9pdatPsHL9OnTv2ILAQAAOck+6DVp0iRdNxdnsIxhKV47F6+vK4aqiRMnhmuvvTbcd999YYMNNkjbYpCrq/rjxo0L22677TJfX6wXh4JWH9pZtNZaa5WeY2lBb+DAgeHcc8/9Gq0DAADkKPugF3Xu3Dk0b948HHvssaVtDzzwQHjllVfCp59+Gn71q1+VQlqc9bJDhw51Vj8Gwuozdi5t2OYee+xRql9dsV7tnr6iAQMGhP79+9fo0evRo8cKtQkAAJCv7K/Ri0sddO/efYntgwYNSrNaxhkyd9hhh9KadbEHr/p1dl+3fry+L/bILU0ckhkne4kzci5NsV58jqWJyzG0b9++xg0AACD7Hr2mTZumnq44xDJeYxdnxSyubffss8+mHrl4vd2NN96YQlecBfPJJ5+ss/q77rrrModX3nDDDaFTp05puYWliT2GvXv3Li3fAAAAsCKy79GLM2TGpRFib9f2228fjjnmmLDvvvumnrrVV189rVEXZ8X8/e9/n8rE7dttt12d1T/44IPT+nqvvfZajdcVF12/6aab0vPFGT2X5v7776+xHh8AAMCKyL5HLwaq+fPnp2GOcbmCKC5WPnPmzHDAAQektepql69+TdzXrR+v2fv5z38errnmmnD99deXtr/wwgvpeeNjS/PBBx+EN954w/IKAADASss+6EXDhw9PoSkOk4w22mijNMwy+vjjj0vl3nrrrTBr1qw6rx8XV//Wt76VhnkWr/eLQzrjMM9lueKKK1K9OBEMAADAysg+6MXJUT777LO0ll3slevXr1945plnwp577pnCV/y9b9++4ZxzzgkjRowo1amr+sVevXfeeWelXnec7AUAAOCryD7onXzyyWnIZBxSGSdSiUMo27ZtGx566KHw+uuvp2UT4mLn8Tq8OOlJvM6u+nVxX7c+AABAQ6sqxCkjyUKcHTSu4RcnkKm9FiB1I75dpk2bltq3OAMrdUsb1z9trI0rnWNYG+fAcayNv875fjwfXd7SatnPugkAANDYCHoAAACZEfQAAAAyI+gBAABkRtADAADIjKAHAACQGUEPAAAgM4IeAABAZgQ9AACAzAh6AAAAmRH0AAAAMiPoAQAAZEbQAwAAyIygBwAAkBlBDwAAIDOCHgAAQGYEPQAAgMw0W9UvgLpTKBTSz+nTp4eqqipNW09tXGxfbVw/tHH908bauNI5hrVxDhzH2viriOeh1c/7v4ygl5HJkyenn+uss86qfikAAEA9mTFjRujQocOXlhH0MtKpU6f085NPPlnuPzxf/VuUHj16hDFjxoT27dtrxnqgjeufNtbGlc4xrI1z4DjWxl9F7MmLIa9bt27LLSvoZaRJk/+95DKGPCGkfsX21cbauNI5jrVxpXMMa+McOI618cpa0Q4dk7EAAABkRtADAADIjKCXkRYtWoRzzjkn/UQbVyrHsTbOgeNY+1Y6x7A2zkGLRn5uXFVYkbk5AQAAqBh69AAAADIj6AEAAGRG0AMAAMiMoJeB8ePHh1/+8pdh9913D4cddlh49tlnV/VLKgv//Oc/w4477rjEbeLEiTXKffrpp+HEE09M7ffjH/84vPjii0s8V0OWKWcLFiwIf/vb38L3vve98K1vfWupZeJlv4MHDw777bdf2HPPPcPFF18c5s+fX9Zlykl8bXfccUfYd999w1577bXUMrH9ax/X1157bY0yixcvDldffXXpeS699NKwcOHCVVamnLzyyivhhBNOCH379g1HHXVU+Pvf/75Emfj6437E/Yn7Ffcv7mc5lyknzz//fDj++ONTGx9zzDHhueeeq/H4okWLlvr5fN999y3xfojv2fjeje/h+F6uPbVAQ5YpJx988EH41a9+ldr40EMPDTfffHNq1+rmzJkTLrjgglRm//33D7feeusSz1NuZcrJ22+/HU455ZT0euP51e23317jmIjnE0s7juP5R3WzZs1KE4Lsscce4fvf/364++67l/h/NWSZcjR16tT0+Rbbr7Zp06aFAQMGhO985zvhoIMOCg888EDZlykbcTIWKteMGTMKG2ywQWHvvfcuPPzww4Wzzz670KxZs8JTTz1VaOzuu+++QqtWrQpDhw6tcZs3b16pzJQpUwrdu3cvHHDAAYVHHnmkcMYZZxSaN29eeOGFF1ZJmXK3yy67FH74wx8W/uM//qPQtGnTpZb5f//v/xU6dOhQGDx4cOHuu+8urLfeeoXDDz+8rMuUk6222iq9vmOPPTa97qXp0qVL4Xe/+12N43rMmDE1yvTv37+w5pprFm655ZbCHXfcUejWrVvhZz/72SorUy7uvPPOwo477li4+uqr0+fkRRddVFhttdXS/epi+8f3a9yfm2++ubDGGmsUTj/99LIuUy6uv/76wq677lq47rrrUhuff/756fPiL3/5S6nMggUL4tly4corr6xxHE+YMKHGcx122GGFnj17pvdufA+3b9++cM4556yyMuXi7bffLmy77bap/Z555pnCtddem96Dp5xySo1y3/ve9wobb7xx4Z577ilcc801hdatWxf+8Ic/lHWZcvHyyy8Xdtppp/Q6YxvHto6fyQMGDCiViZ+78TiOnyvVj+P4975o8eLFhd13372w5ZZbpvOSQYMGFVq0aFHjM6chy5Srgw8+uLDZZpul9qxu4cKFhe233z7dHnjggcIll1ySznOrf56UW5lyIuhVuD/+8Y+Fdu3aFWbNmlXaFk8S44lMYxc/5Nq0afOlZc4777xC586da4S/+Idozz33XCVlyt3UqVPTzxtvvHGpQe+LL75If1T+/Oc/l7b94x//SB/cb775ZlmWKdc2jn+gvyzofdkflc8++yz9+8RQUPTQQw8VqqqqCiNHjmzwMuX25Vhtp512WqFXr16l+yNGjEjHyGOPPVbaFts7/jEfP358WZYp9zY+7rjj0pcYtYNefD8uy7/+9a9UZsiQIaVt8YQ1vqeL75OGLFNO5syZU1i0aFGNbb///e/TZ0PRP//5z7RPb7zxRmlbDFXxnGH27NllWaacxNcUg1N1v/71r9OX67WD3nvvvbfM53n00UdTmeqfh/ELhBjM4/ugocuUo6uuuqrwrW99K33BUjvoxS9emjRpUvj0009L2+KXXD169Cj9+5RbmXIi6FW4GBQOOuigGttuv/32dJI1ffr0QmMPevFEaL/99ks9nvGNOG7cuBplvv3tbxeOOuqoGtvit9Cxp23+/PkNXqZSLCvoxRP8+CFd/eQznoysvvrq6VuvcixTrpYX9Lbbbrt0TP3kJz9JPcTVxdAV97v6CXc8xuJJa/x2uqHLlLs4EmLdddetcYLfsmXLGidG8fO0+M19OZYpdzFMb7rppksEvXhyF3sg+vXrt8TohhgCOnbsWOPkKX6Gx3pxBEtD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sW2Lt7g+UvUv0eJ+xP2J+xX3r/YU6uVWplxceOGFqY032WSTGu0bw19RnJ0uzlQY9yeG7riW4Y9//OPCxIkTazxXfK/G92z8AjO+h+MxH9/Tq6pMuYghL4ak+JkWA39cSii257vvvlujXFz/Lc5oGKd+j7MNb7311kusuVluZcrFK6+8ktZKi8dEPBbi3+5999238O9//7tUJs5kGY/teMzE92Q8juPMm7WXGIlf8MYlDuLsvnF9xrg+X+01IxuyTCUFveIXG/F4iV8gtm3bNs3UW32twnIsUy6q4n9Wda8idTNMJg6JiEOQDNn8P/HwjsOd4jUicYhk9Vnrqovj7eNws3hhdRyasarLlKv4uidOnLjE9jhcofbFyR988EG6RmGTTTZZZruXW5lyMGLEiCXG/0dx2E1xSFs0derUNNRsnXXWSZOxLOv4f//999PxH/e79rUkDV2mHMShu8uaGS1eF1Jd3Jd4rU3cl4033niJSX3KsUw5iEOj4622+Lq33377JWY9jUPd1l9//RrD6quLQ6Tifsdr+nr37r3Ky5STzz//PA037d69+zKHxxav340TRsRJcSqhTDmJx2c8Tnv06LHMz9r4uRKv943HcXFijtri35+433G23Dhb8qouU47i+UU8z6j9WRzF4ajxb0z8N4jtvDTlVqYcCHoAAACZKc+vXAEAAPjKBD0AAIDMCHoAAACZEfQAAAAyI+gBAABkRtADAADIjKAHAACQmfJdNRgAMvHRRx+FV155JS0sX31x4GbNmoXmzZunxdDbt29femzNNdcMffv2LZv6AFQeC6YDQD2aP39+6NKlS5g5c2bYb7/9QuvWrdP2N954I3zwwQdh9913D23btk23GMT+9a9/hZEjR4bbbrstHHHEEau8PgCVSY8eANSjGTNmhKlTp4af/vSn4cYbbyxtnzJlSnjsscfCkUceWaN8DFkbbbRRGDNmTFnUB6AyCXoA0ABij1n01FNPhUmTJoWqqqpw6623hk8++ST07NkzPTZixIhwzDHHlGV9ACqLyVgAoAHEIZRz584Nf/jDH9Iwyng75JBDwlprrZV+/+yzz8KHH36Yet+iuK2c6gNQWfToAUA9a9q0aepBi2Hr+uuvT2EqXg8Xty9YsCDcdddd4aWXXgp///vf05DKqHgtXTnUB6DyCHoAUM9ioIrBKc5sGW89evRI20866aTw+eefhwMOOCCce+65aQbMaLXVVgtNmjQpm/oAVB5BDwDqWVyuYIMNNlhi+6OPPppum2yySbr/9ttvh86dO6dQVn0phFVdH4DKI+gBQD2La9bFa97iWnYXXnhhWH311cP48ePTrV+/fqFVq1Zh4cKFYejQoWHYsGFpaOXYsWPLpj4AlUfQA4B6Fq+D+/TTT8Nmm20Wbr/99tCmTZswZ86c0KdPn/Db3/42bLXVVqWy8Vq6qHv37mVTH4DKI+gBQANYtGhRjQlOHnroobDtttumW9euXUvbl9WTtqrrA1BZBD0AaAD33Xdf6NWrV1h//fVDhw4dQosWLcKJJ54Y3n///bS0QRwuGSdGeeSRR8qyPgCVRdADgHoUA1WcwTJeD9e/f/+w4YYbpiGTo0ePDnvssUcKXu+9915Yd91109IHcS27qNj7tqrrA1CZqgqm1QKAenXDDTeEJ598Mv0eA9fIkSNT71r1IZNRvG4uTozSpUuXtNxB7Hkrh/oAVB5BDwAAIDNWQwUAAMiMoAcAAJAZQQ8AACAzgh4AAEBmBD0AAIDMCHoAAACZEfQAAAAyI+gBAABkRtADAAAIefn/YfKDr+whs+AAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 900x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>channel</th>\n",
       "      <th>orders</th>\n",
       "      <th>order_share</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>消费机</td>\n",
       "      <td>409154</td>\n",
       "      <td>0.919108</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>外部订单接入</td>\n",
       "      <td>16085</td>\n",
       "      <td>0.036133</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>绑盘机</td>\n",
       "      <td>9350</td>\n",
       "      <td>0.021003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>闸机</td>\n",
       "      <td>6529</td>\n",
       "      <td>0.014667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>线上订餐</td>\n",
       "      <td>3425</td>\n",
       "      <td>0.007694</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>虚拟订单</td>\n",
       "      <td>618</td>\n",
       "      <td>0.001388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>其他(7)</td>\n",
       "      <td>3</td>\n",
       "      <td>0.000007</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  channel  orders  order_share\n",
       "0     消费机  409154     0.919108\n",
       "1  外部订单接入   16085     0.036133\n",
       "2     绑盘机    9350     0.021003\n",
       "3      闸机    6529     0.014667\n",
       "4    线上订餐    3425     0.007694\n",
       "5    虚拟订单     618     0.001388\n",
       "6   其他(7)       3     0.000007"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "channels = channel_rank.sort_values('orders')\n",
    "ax = channels.plot.barh(x='channel', y='orders', legend=False, figsize=(9,4.8), color='#2980b9')\n",
    "ax.set_title('近30天功能入口订单')\n",
    "ax.set_xlabel('订单数')\n",
    "ax.set_ylabel('')\n",
    "ax.grid(axis='x', alpha=.2)\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "channel_rank"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d81b5f2a",
   "metadata": {},
   "source": [
    "### 4. 非交易功能业务信号"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "6f8753bf",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:04:31.461755Z",
     "iopub.status.busy": "2026-08-04T11:04:31.461673Z",
     "iopub.status.idle": "2026-08-04T11:04:31.533200Z",
     "shell.execute_reply": "2026-08-04T11:04:31.532717Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 35760 (\\N{CJK UNIFIED IDEOGRAPH-8BB0}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 24405 (\\N{CJK UNIFIED IDEOGRAPH-5F55}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 65288 (\\N{FULLWIDTH LEFT PARENTHESIS}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 19981 (\\N{CJK UNIFIED IDEOGRAPH-4E0D}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 26159 (\\N{CJK UNIFIED IDEOGRAPH-662F}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 29992 (\\N{CJK UNIFIED IDEOGRAPH-7528}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 25143 (\\N{CJK UNIFIED IDEOGRAPH-6237}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 65289 (\\N{FULLWIDTH RIGHT PARENTHESIS}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 20581 (\\N{CJK UNIFIED IDEOGRAPH-5065}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 24247 (\\N{CJK UNIFIED IDEOGRAPH-5EB7}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 25454 (\\N{CJK UNIFIED IDEOGRAPH-636E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 36134 (\\N{CJK UNIFIED IDEOGRAPH-8D26}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 32564 (\\N{CJK UNIFIED IDEOGRAPH-7F34}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 36153 (\\N{CJK UNIFIED IDEOGRAPH-8D39}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 28040 (\\N{CJK UNIFIED IDEOGRAPH-6D88}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 38480 (\\N{CJK UNIFIED IDEOGRAPH-9650}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 39069 (\\N{CJK UNIFIED IDEOGRAPH-989D}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 25318 (\\N{CJK UNIFIED IDEOGRAPH-62E6}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 25130 (\\N{CJK UNIFIED IDEOGRAPH-622A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 20154 (\\N{CJK UNIFIED IDEOGRAPH-4EBA}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 33080 (\\N{CJK UNIFIED IDEOGRAPH-8138}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 24314 (\\N{CJK UNIFIED IDEOGRAPH-5EFA}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 26723 (\\N{CJK UNIFIED IDEOGRAPH-6863}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 21518 (\\N{CJK UNIFIED IDEOGRAPH-540E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 21488 (\\N{CJK UNIFIED IDEOGRAPH-53F0}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 25253 (\\N{CJK UNIFIED IDEOGRAPH-62A5}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 34920 (\\N{CJK UNIFIED IDEOGRAPH-8868}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 23548 (\\N{CJK UNIFIED IDEOGRAPH-5BFC}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 20986 (\\N{CJK UNIFIED IDEOGRAPH-51FA}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 36864 (\\N{CJK UNIFIED IDEOGRAPH-9000}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 27454 (\\N{CJK UNIFIED IDEOGRAPH-6B3E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 30003 (\\N{CJK UNIFIED IDEOGRAPH-7533}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 35831 (\\N{CJK UNIFIED IDEOGRAPH-8BF7}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 20307 (\\N{CJK UNIFIED IDEOGRAPH-4F53}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 21345 (\\N{CJK UNIFIED IDEOGRAPH-5361}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 23433 (\\N{CJK UNIFIED IDEOGRAPH-5B89}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 20840 (\\N{CJK UNIFIED IDEOGRAPH-5168}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 23457 (\\N{CJK UNIFIED IDEOGRAPH-5BA1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 35745 (\\N{CJK UNIFIED IDEOGRAPH-8BA1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 25805 (\\N{CJK UNIFIED IDEOGRAPH-64CD}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 20316 (\\N{CJK UNIFIED IDEOGRAPH-4F5C}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 21462 (\\N{CJK UNIFIED IDEOGRAPH-53D6}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 39184 (\\N{CJK UNIFIED IDEOGRAPH-9910}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 26588 (\\N{CJK UNIFIED IDEOGRAPH-67DC}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 25509 (\\N{CJK UNIFIED IDEOGRAPH-63A5}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 21475 (\\N{CJK UNIFIED IDEOGRAPH-53E3}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 27969 (\\N{CJK UNIFIED IDEOGRAPH-6D41}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 31243 (\\N{CJK UNIFIED IDEOGRAPH-7A0B}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 36817 (\\N{CJK UNIFIED IDEOGRAPH-8FD1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 22825 (\\N{CJK UNIFIED IDEOGRAPH-5929}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 38750 (\\N{CJK UNIFIED IDEOGRAPH-975E}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 20132 (\\N{CJK UNIFIED IDEOGRAPH-4EA4}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 26131 (\\N{CJK UNIFIED IDEOGRAPH-6613}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 21151 (\\N{CJK UNIFIED IDEOGRAPH-529F}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 33021 (\\N{CJK UNIFIED IDEOGRAPH-80FD}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 19994 (\\N{CJK UNIFIED IDEOGRAPH-4E1A}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/var/folders/mg/qq5pkw2d36n0gfbq68sl2jbc0000gn/T/ipykernel_62354/99573773.py:7: UserWarning: Glyph 21153 (\\N{CJK UNIFIED IDEOGRAPH-52A1}) missing from font(s) DejaVu Sans.\n",
      "  plt.tight_layout()\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20581 (\\N{CJK UNIFIED IDEOGRAPH-5065}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 24247 (\\N{CJK UNIFIED IDEOGRAPH-5EB7}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25454 (\\N{CJK UNIFIED IDEOGRAPH-636E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35760 (\\N{CJK UNIFIED IDEOGRAPH-8BB0}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 24405 (\\N{CJK UNIFIED IDEOGRAPH-5F55}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36134 (\\N{CJK UNIFIED IDEOGRAPH-8D26}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21333 (\\N{CJK UNIFIED IDEOGRAPH-5355}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 32564 (\\N{CJK UNIFIED IDEOGRAPH-7F34}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36153 (\\N{CJK UNIFIED IDEOGRAPH-8D39}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 28040 (\\N{CJK UNIFIED IDEOGRAPH-6D88}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 38480 (\\N{CJK UNIFIED IDEOGRAPH-9650}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 39069 (\\N{CJK UNIFIED IDEOGRAPH-989D}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25318 (\\N{CJK UNIFIED IDEOGRAPH-62E6}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25130 (\\N{CJK UNIFIED IDEOGRAPH-622A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20154 (\\N{CJK UNIFIED IDEOGRAPH-4EBA}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 33080 (\\N{CJK UNIFIED IDEOGRAPH-8138}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 24314 (\\N{CJK UNIFIED IDEOGRAPH-5EFA}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26723 (\\N{CJK UNIFIED IDEOGRAPH-6863}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21518 (\\N{CJK UNIFIED IDEOGRAPH-540E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21488 (\\N{CJK UNIFIED IDEOGRAPH-53F0}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25253 (\\N{CJK UNIFIED IDEOGRAPH-62A5}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 34920 (\\N{CJK UNIFIED IDEOGRAPH-8868}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 23548 (\\N{CJK UNIFIED IDEOGRAPH-5BFC}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20986 (\\N{CJK UNIFIED IDEOGRAPH-51FA}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36864 (\\N{CJK UNIFIED IDEOGRAPH-9000}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 27454 (\\N{CJK UNIFIED IDEOGRAPH-6B3E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 30003 (\\N{CJK UNIFIED IDEOGRAPH-7533}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35831 (\\N{CJK UNIFIED IDEOGRAPH-8BF7}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 23454 (\\N{CJK UNIFIED IDEOGRAPH-5B9E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20307 (\\N{CJK UNIFIED IDEOGRAPH-4F53}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21345 (\\N{CJK UNIFIED IDEOGRAPH-5361}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 23433 (\\N{CJK UNIFIED IDEOGRAPH-5B89}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20840 (\\N{CJK UNIFIED IDEOGRAPH-5168}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 23457 (\\N{CJK UNIFIED IDEOGRAPH-5BA1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35745 (\\N{CJK UNIFIED IDEOGRAPH-8BA1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25805 (\\N{CJK UNIFIED IDEOGRAPH-64CD}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20316 (\\N{CJK UNIFIED IDEOGRAPH-4F5C}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21462 (\\N{CJK UNIFIED IDEOGRAPH-53D6}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 39184 (\\N{CJK UNIFIED IDEOGRAPH-9910}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26588 (\\N{CJK UNIFIED IDEOGRAPH-67DC}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25509 (\\N{CJK UNIFIED IDEOGRAPH-63A5}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21475 (\\N{CJK UNIFIED IDEOGRAPH-53E3}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 35746 (\\N{CJK UNIFIED IDEOGRAPH-8BA2}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 27969 (\\N{CJK UNIFIED IDEOGRAPH-6D41}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 31243 (\\N{CJK UNIFIED IDEOGRAPH-7A0B}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 36817 (\\N{CJK UNIFIED IDEOGRAPH-8FD1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 22825 (\\N{CJK UNIFIED IDEOGRAPH-5929}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 38750 (\\N{CJK UNIFIED IDEOGRAPH-975E}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 20132 (\\N{CJK UNIFIED IDEOGRAPH-4EA4}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26131 (\\N{CJK UNIFIED IDEOGRAPH-6613}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21151 (\\N{CJK UNIFIED IDEOGRAPH-529F}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 33021 (\\N{CJK UNIFIED IDEOGRAPH-80FD}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 19994 (\\N{CJK UNIFIED IDEOGRAPH-4E1A}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 21153 (\\N{CJK UNIFIED IDEOGRAPH-52A1}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 65288 (\\N{FULLWIDTH LEFT PARENTHESIS}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 19981 (\\N{CJK UNIFIED IDEOGRAPH-4E0D}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 26159 (\\N{CJK UNIFIED IDEOGRAPH-662F}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 29992 (\\N{CJK UNIFIED IDEOGRAPH-7528}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 25143 (\\N{CJK UNIFIED IDEOGRAPH-6237}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "/tmp/zhct-analysis-venv.WoiGXS/lib/python3.12/site-packages/IPython/core/pylabtools.py:158: UserWarning: Glyph 65289 (\\N{FULLWIDTH RIGHT PARENTHESIS}) missing from font(s) DejaVu Sans.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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eFylMh6PC5nEkbJc+m+qTZs2KTjWfgAAAE3PiF49xK0I4vYEcbrjF7/4xTStcd68eeHZZ58N559/fp2gc/DBB5fCUi79AQCA8iDo1UPcUPzdd98N2267bfjzn/+cjj3++ONhzpw5KSgNHz68Tvs4eta3b99s+gMAAOXB1M162nRlyT333DOcddZZ6T632tauXZseufUHAACaPyN69fTYY4+Fo48+Oq1IecABB4QpU6aEAQMGpFUs43YENTU14ZFHHglPPPHEewalcu8PAAA0f4JePeywww5pj7n7778/bVFw1113pZUpP/nJT4ZDDjkkPP/882mE7He/+126Dy6qvQplufcHAADKQ1VhS2voU/Lmm2+GiRMnho0bN6av4+biu+++e6iqqgqtW7cutYurWha3MohTIuPnOfTfkjgtNI4IxjAZP9J44l/juNBOrHv8eaL2lcK5r/aVyHmv/pXKuR9K19vxum9LK94LejQYQa/peONT+0rl3Ff7SuS8V/9K5dwP9Qp6FmMBAADIjKAHAACQGUEPAAAgM4IeAABAZgQ9AACAzAh6AAAAmRH0AAAAMiPoAQAAZEbQAwAAyIygBwAAkBlBDwAAIDOCHgAAQGYEPQAAgMwIegAAAJkR9AAAADIj6AEAAGRG0AMAAMiMoAcAAJAZQQ8AACAzgh4AAEBmBD0AAIDMCHoAAACZEfQAAAAyI+gBAABkRtADAADIjKAHAACQGUEPAAAgM9WhzCxbtixs3Lix9HWhUAirV68O7dq126xt27ZtQ5s2bfRvwPoBAADNX1kFvWHDhoVx48al8FEMJkuWLElhpahLly6lQFNVVRVuvvnmcOqpp+rfAPUDAADKQ1lN3Rw/fnzYfffdw+LFi8O7776bHqtWrQo/+MEPwvr161NgKR6fNm1aGrl68MEH9W+g+gEAAOWhrIJetPPOO6cphQsWLAivv/56CiqtW7cODz/8cBqdio8XXngh9O7dO7Rv317/Bq4fAADQ/JXV1M1o7dq16eM111wTnnrqqRRa4kjU448/Hjp06JCee+mll8L1118f1qxZExYtWqR/A9YPAABo/soq6LVo0SIFlXXr1oUePXqEyy67LI1IVVf/7Y8Rpxxed9114e677w677rprCjDF5/T/+PXbVAyC8VG0dOnSrfrzBwAAMgx6MXjEgNKqVavwz//8z6Xj9913X3jiiSfCa6+9Fs4555ywyy67pOPdunULXbt21b+B6rep0aNHh1GjRm2lnzYAAFAR9+h17tw57LTTTpsdjyNTO+ywQxg7dmw45JBDSqtIxhGs2tsG6P/x6repkSNHlu7ri4/Zs2c30E8aAAComBG9OI0wTg9cuHBhuPbaa9Py/9Ebb7yR7jGL95PFkBKfe+CBB8LcuXPDhAkT9G+g+m0qbtNgnz0AAGh+yiroxXvIYkjp2LFjGDBgQBg0aFCYN29eGomKK0fGaYnFkaY4EtWpU6ew9957699A9QMAAMpDWQW9uK9bXEwkrhT5hS98IR2L0wXjtMG/+7u/C8cee+xm7eP9aPo3TP0AAIDyUFZBr7j0/yuvvJIWCok+8YlPpIVE4v1kcXSqaPLkyWHFihX6N3D9AACA5q+sgl4MI3PmzElTDuO9Yaeffnra6Puwww4LBx54YLqf7Kijjgo/+clPwrRp00p99G+Y+gEAAOWhqlBcYrEMfPe73w2/+c1v0pTCuJBIvOcsTi2M95bFVSPjfWZxX7epU6eGli1bplU2b7zxxhRk9P/49duSuNBLTU1NWLx4cfpI44l/jeMU3Fj34iI7qH0lcO6rfSVy3qt/pXLuh9L1drzui9fq2QQ9mjdBr+l441P7SuXcV/tK5LxX/0rl3A/1Cnrm5QEAAGRG0AMAAMiMoAcAAJAZQQ8AACAzgh4AAEBmBD0AAIDMCHoAAACZEfQAAAAyI+gBAABkRtADAADIjKAHAACQmeqmfgHko1AopI9Lly4NVVVVTf1yKq72xbqrvdpXEue+2lci5736VyrnfkjXe8VabImgR4N555130scdd9xRVQEAYCtZtmxZqKmp+cA2gh4Nplu3bunjrFmztnji0fC/3enTp0+YPXt26Ny5s/I2IrVvWuqv9pXIea/+lcq5H9JIXgx5vXv33mK9BD0aTIsWf7vlM4Y8YaNpxLqrvdpXIue+2lci5736V6pKP/drPuSAisVYAAAAMiPoAQAAZEbQo8G0adMmXHTRRekjjUvtm47aNy31V/tK5LxX/0rl3K+fqsKHWZsTAACAsmFEDwAAIDOCHgAAQGYEPQAAgMwIenxsc+fODV//+tfDoYceGr74xS+GP/3pT6q6BatXrw433XRT+OxnPxs+//nPv2eb9evXhyuuuCK1Ofroo8OvfvWrsHHjxiZrk9P5+qMf/Sgce+yx4aSTTgpXXnllWLNmzWbt7r///nDyySen8/pb3/pWWLhwYZO2ycX48ePDGWecEQ4//PBw1llnhccee2yzNjNnzgxf/epXwyGHHBJOO+208MwzzzRpm9zE8/3v/u7vwgEHHBAWLVpU57lVq1aFn/zkJ+GII44IJ5xwQrjllls269+YbXJx7rnnpnrXfnzve9/brN3tt9+efjbx78cPf/jDtClyU7bJRfw3bsyYMeFzn/tcOP7448PNN9+8WZuXXnopfOUrX0nvBfG9acqUKU3aJgex5pue9/Hx6U9/us6/u0uWLAkjR44Mhx12WDjxxBPDXXfdtdn3asw2WYmLscBHtWzZssIuu+xS+OxnP1u45557Cj/84Q8L1dXVhQkTJijqB9htt90Kp512WmHYsGGF7bff/j3bnHPOOYXtttuuMG7cuMLNN99c6NmzZ+Eb3/hGk7XJweLFiwt9+/YtjBo1qnDfffelP288f4899tjCxo0bS+3uuuuudB7/9Kc/LfzhD38ofOYznynssccehdWrVzdJm1xcdtllhVNOOaUwduzYwoMPPlj413/910LLli3Tz6Lo7bffLmyzzTap3fjx4wsXXHBBoW3btoXnnnuuSdrk6Nxzzy0MHjw4LsSWalDb8ccfX9h9990Lt99+e+Gaa64ptG/fvnDppZc2WZtcHHLIIYWvfOUrhccff7z0ePXVV+u0+c///M9CmzZtCldccUXhzjvvLOy1116Fgw8+uM57U2O2ycX69esLxxxzTKF///6l956zzjorfV40derUQqdOnQpnn312ei84/fTTC126dCnMmDGjSdrkYvbs2XXO+fiI7z0HHXRQnZ/Pfvvtlx7x38Of//zn6d/EeC3SFG1yI+jxsfzHf/xHesNasWJF6diXvvSlwgEHHKCyWwgc0ejRo98z6E2fPr1QVVWVLvyL/uu//itdFM+ZM6fR2+Ri3bp1hVWrVtU59vDDD6cL3r/+9a+lYzFoffWrXy19/c477xRat25duPbaa5ukTS5qv08UHXjggYV//Md/LH39ne98p7DTTjulf5BrXySfeOKJTdImN7///e/TOXfHHXdsFvT+/Oc/p2PPP/986VgMXvE9fuXKlY3eJifxvPr+97//vs/Hc7BXr16Fiy66qHRs2rRpqUbxl6iN3SYnV199dfoFzuuvv17neO1/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",
      "text/plain": [
       "<Figure size 900x520 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>feature</th>\n",
       "      <th>records</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>订餐取餐流程</td>\n",
       "      <td>73179</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>取餐柜接口</td>\n",
       "      <td>4608</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>后台安全审计操作</td>\n",
       "      <td>3246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>实体卡建档</td>\n",
       "      <td>1127</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>退款申请</td>\n",
       "      <td>460</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>后台报表导出</td>\n",
       "      <td>366</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>人脸建档</td>\n",
       "      <td>232</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>消费限额拦截</td>\n",
       "      <td>97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>账单缴费</td>\n",
       "      <td>42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>健康数据记录</td>\n",
       "      <td>22</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>就餐评价</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>健康测量会话</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>称重设备事件</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     feature  records\n",
       "0     订餐取餐流程    73179\n",
       "1      取餐柜接口     4608\n",
       "2   后台安全审计操作     3246\n",
       "3      实体卡建档     1127\n",
       "4       退款申请      460\n",
       "5     后台报表导出      366\n",
       "6       人脸建档      232\n",
       "7     消费限额拦截       97\n",
       "8       账单缴费       42\n",
       "9     健康数据记录       22\n",
       "10      就餐评价       11\n",
       "11    健康测量会话        3\n",
       "12    称重设备事件        1"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "signals = feature_rank.head(10).sort_values('records')\n",
    "ax = signals.plot.barh(x='feature', y='records', legend=False, figsize=(9,5.2), color='#4f9bd3')\n",
    "ax.set_title('近30天非交易功能业务记录')\n",
    "ax.set_xlabel('记录数（不是用户数）')\n",
    "ax.set_ylabel('')\n",
    "ax.grid(axis='x', alpha=.2)\n",
    "plt.tight_layout()\n",
    "plt.show()\n",
    "feature_rank"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5b1ef885",
   "metadata": {},
   "source": [
    "### 5. 中央统计与直连生产库差异"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "741d74dd",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-08-04T11:04:31.534281Z",
     "iopub.status.busy": "2026-08-04T11:04:31.534210Z",
     "iopub.status.idle": "2026-08-04T11:04:31.537846Z",
     "shell.execute_reply": "2026-08-04T11:04:31.537337Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>生产库直连订单</th>\n",
       "      <th>中央统计订单</th>\n",
       "      <th>中央少计</th>\n",
       "      <th>中央/直连</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>445164</td>\n",
       "      <td>203990</td>\n",
       "      <td>241174</td>\n",
       "      <td>0.458236</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   生产库直连订单  中央统计订单    中央少计     中央/直连\n",
       "0   445164  203990  241174  0.458236"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "direct_orders = int(project_rank.orders.sum())\n",
    "central_orders = int(central.current30_orders.sum())\n",
    "pd.DataFrame([{\n",
    "    '生产库直连订单': direct_orders,\n",
    "    '中央统计订单': central_orders,\n",
    "    '中央少计': direct_orders-central_orders,\n",
    "    '中央/直连': central_orders/direct_orders,\n",
    "}])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e889a19",
   "metadata": {},
   "source": [
    "## Takeaways\n",
    "\n",
    "1. **产品主战场仍是交易核心。** 消费机是跨项目绝对主入口；高频项目的稳定性、外部订单一致性、取餐与报表自动化应优先于继续堆叠低激活功能。\n",
    "2. **项目画像必须分开运营。** 金斯瑞是消费机+取餐柜，机场是消费机+外部订单，赛迪是消费机+闸机+卡/规则，产业园是绑盘+虚拟订单，西康是绑盘。\n",
    "3. **健康与AI能力尚未形成跨项目使用。** 可见业务记录很少；要评价渗透率必须补页面、小程序、设备和接口事件流。\n",
    "4. **先修数据基础再做全局经营看板。** 当前中央统计少计241,174单，且前30天活跃用户返回0；在修复前不宜用中央统计评价项目增减和功能采用。\n",
    "5. **28候选表应转为正式项目主数据。** 需要唯一项目ID，以及客户、仓库、部署、中央项目码、数据库、线程任务的映射关系。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
