{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "b22d5573-7d43-47f4-83ab-dcbc2772136a", "metadata": {}, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 9, "id": "b5474ec4-e68f-428d-a1f5-446055c07a16", "metadata": {}, "outputs": [], "source": [ "rst_mix = pd.read_csv('./mix_eva.csv')\n", "rst_mix.index = [10, 20, 30, 40]" ] }, { "cell_type": "code", "execution_count": 10, "id": "9790e6fc-1cdb-4376-a63a-3f2eb7f2e555", "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 36, "id": "17916ba4-aab6-43f1-b97f-be7f44d068a4", "metadata": {}, "outputs": [], "source": [ "colors = [(211, 65, 51), (240, 155, 39), (25, 152, 128)]\n", "rgb_colors = [tuple(c/255 for c in color) for color in colors]" ] }, { "cell_type": "code", "execution_count": 11, "id": "68df39d6-c0f8-4fe8-9d49-6ce3ca8d6682", "metadata": {}, "outputs": [], "source": [ "# 设置字体为Times new Roman\n", "plt.rcParams['font.sans-serif'] = ['Times New Roman']" ] }, { "cell_type": "code", "execution_count": 43, "id": "bb9d01de-c270-4578-b358-66366857da0b", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHVCAYAAAB8NLYkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABYKUlEQVR4nO3de3zO9f/H8ee1s9NmM+fz+ayICM1YotJXRIQccqYMWQ45pyQdSM6KkL7F91tfp1Bqk3MOYTnHch4j29h5e//+cNv162rDdtmMa4/77Xbdap/3+/P+vD77zDy9PyeLMcYIAAAADz2nnC4AAAAAWYNgBwAA4CAIdgAAAA6CYAcAAOAgCHYAAAAOgmAHAADgIAh2AAAADoJgBwAA4CAIdgAAAA6CYAcAAOAgXHK6gPScOnVKH330kU6fPq1169alaT9//ryGDBmi8PBwJSUl6bXXXlO3bt3S9Dty5IiGDRummJgYJScna/z48WrVqlWaftu3b9eYMWOUkpIiJycnffDBB6pfv36afmvWrNHUqVPl4uKifPnyadasWapUqVKm9i0lJUUXLlxQgQIFZLFYMrUuAADIfYwxio6OVokSJeTkdJc5OfOA+emnn8zw4cONJNOsWbM07VeuXDEVKlQwU6dONcYYEx4ebkqUKGE+//xzm37Hjx83vr6+5quvvjLGGHP06FHj6elpNm3aZNNv69atJn/+/Gbr1q3GGGNCQkKMp6enOXjwoE2/lStXGk9PT3PixAljjDFLly41xYsXNxcuXMjU/p09e9ZI4sOHDx8+fPjwydTn7Nmzd80ZFmOM0QOocOHCqlmzpoKDg22WDxw4UP/5z3904cIFubjcmnCcMmWK3n//fZ06dUq+vr6SpGeeeUbh4eHat2+fdd0+ffrohx9+0MmTJ+Xq6qrk5GQ9+uijqly5sv773/9a+z311FO6efOmduzYIUmKiopS5cqV1bVrV3300UfWfpUrV1b9+vX11VdfZXi/IiMjVbBgQZ09e1aenp6Z/r4AAIDcJSoqSqVLl9b169fl5eV1x74P5KlYScqbN2+aZTExMVqyZInatGljDXWS5Ofnp3Hjxmnp0qUaPny4Tp06pQ0bNmjEiBE26/v5+emzzz7TmjVr1L59e4WEhCg0NFQDBgxI02/ChAnat2+f6tWrp1WrVuny5csKCAiw6ffkk09q2bJlmjlzpooUKZKh/Uo9/erp6UmwAwAAGZaRS7ge2Jsn0is+JCREcXFxqlKlis3yatWqWdslaePGjZJ0X/olJSVp27Ztt92P+Ph4RUVF2XwAAACywwMb7NITFhYmSSpWrJjN8tRpydT2nOqXnqlTp8rLy8v6KV269G37AgAA3IuHKthdu3ZNUtrTtKmnZWNjY3O0X3pGjx6tyMhI6+fs2bN33kkAAAA7PbDX2KXHw8NDUtogFRcXJ0ny8fHJ9n758+e/bb/0uLu7y93d/e47BwAAcI8eqhm7ihUrSpKuXr1qszz16zJlyuRoPwAAgJz0UAU7Pz8/ubi46NixYzbLT548KUlq2bKlJKlFixaSdF/6ubm5qVmzZvewVwAAAFnjgQ12xhj98xF7Pj4+6tSpk3788UebtuDgYHl7e6tDhw6SpDp16qhJkybatGmTzfrBwcGqXLmy/P39Jd161l25cuXS7efv76/KlStLkrp166YCBQrY9DPGaMuWLerSpYvy5cuXZfsNAABgrwfyGruEhARdv35dV65ckTHG5tEn06dP16ZNm/T555+rd+/eCgsL04IFCzRz5kx5e3tb+82ZM0eNGjXS5s2bFRAQoL1792r16tX6z3/+I1dXV0mSq6ur5s2bp3bt2unw4cOqUaOG1q5dq9DQUG3ZssU6lo+Pjz766CONGTNGI0aMULFixTRnzhylpKTo3XffvX/fGACAXZKSkpSUlJTTZSCXc3Jykqura7a+UvSBe/PE/PnzNW3aNJ0+fVqSVL16dX300Udq3bq1tc/Ro0f12muvKSEhQSkpKQoKClLbtm3TjLVjxw4FBQXJ2dlZzs7Omjx5spo2bZqm39q1azV58mTlyZNH+fLl0/vvv69atWql6bd48WJ9+umnyps3r4oXL64PPvgg09fXRUVFycvLS5GRkTygGACyWUxMjCIiInTz5s2cLgWQdGtSqUCBAvL19ZWzs3OG1slMdnjggp2jI9gBwP2RkJCg06dPy9XVVT4+PnJ3d8/WmRLgTowxSk5O1o0bNxQZGSl3d3eVLl06Q+EuM9nhgTwVCwDAvbp8+bKcnZ1VtmzZDM+MANktf/788vLy0pkzZxQREaGiRYtm6fgP7M0TAADYyxijmJgYeXl5EerwwMmTJ488PT0VHR2d5kbRe0WwAwA4nMTERCUnJytPnjw5XQqQrgIFCigxMVGJiYlZOi7BDgDgcFJSUiSJ2To8sFJ/NlN/VrMKwQ4A4LC4WQIPquz62STYAQAAOAjuis1lQlvUz7Ft1/ppT45tGwCA3IBgBwDItXLyH7v24B/IuBtOxQIAADgIgh0AAMhShw8fVpEiRTRw4MCcLiXXIdgBAIAsdf36dV27dk1hYWE5XUquQ7ADACCXCg8P17Rp07J83MaNG+vChQtavXp1lo+NOyPYAQCQSwUFBSk2NjZbxi5SpIhcXV2zZWzcHsEOAIBcaNy4cVq2bFlOl4EsRrADACCXmTZtmtasWSNJWrJkifz9/dWrVy/Nnj1bAQEBatmypU6fPq1mzZopf/78+vjjjyVJ58+fV+/evdW0aVM1bNhQZcuWVWBgoGJiYqxj37hxQ4sXL1azZs306quvSpLi4uK0Zs0adejQQb6+vgoODtY333yjAQMGqFy5cqpZs6a2bt16/78RDohgBwBALjNy5EjNmDFDktSzZ08FBwdr1KhR8vb21k8//aQrV65o9uzZGjZsmKpXr664uDglJCSoefPmCg0NVXBwsHbt2qU333xTn3zyiaZOnWode+PGjdq+fbu2bNlifQ+qh4eHnn/+efn6+urq1auaN2+eatWqpXnz5um3335TeHi4OnXqpMTExJz4djgUgh0AAFDVqlXVsWNHSdLly5c1adIkvfDCC/r11181evRohYaG6sSJE6pTp45cXG6936Bz586SpL1791rHefHFFzVs2LB0t1G4cGFJUt++fVWjRg1JUsGCBdWkSRNduHBBR48ezbb9yy148wQAAJAk680OVapUUb58+Wza6tSpo+nTp+vZZ5+1Ljt9+rQkpbkBI0+ePOmO7+zsbPPfVAULFpR06zEpuDcEOwAAcFcuLi4aMWKErl+/rg8++EBbt25V06ZNJUnGGJu+FoslU2On9k9OTs6aYnMxTsUCAIAMWb58uWrVqqUiRYro22+/1YgRI3K6JPwDM3YAAOCu1q1bp+7du+uTTz5R9+7dc7oc3AYzdgAA5EKp17ml3rn6d+mdEl23bp2MMSpRooR1Weop2H+eik0d85/LU8f95/J/jgf7EewAAMiFSpYsKUnW97muXbtWf/zxhyTp6NGjunbtmk3/6tWrS5ImTpyoX375RatWrVLHjh3l5OSk06dP6/vvv9fGjRslSSdPnpQknTp1ymaM48ePS5J1O6kuXLiQbn9kHqdiAQC5Vq2f9uR0CTmmQoUKGj58uObPny9JqlixovUUa0REhKpWrap3331Xffv2lST1799f+/bt03//+1/16NFDnTt31hdffKGYmBjt3LlTBw8e1MiRIzV69GjNmTNHkrR161bVqlVL//nPf/Tyyy9r//79kqTXX39d69ev15QpU/Tyyy/r4MGD1uW//vqr5s2bd7+/HQ7DYpj3vK+ioqLk5eWlyMhIeXp63vfth7aof9+3mSo3/wIFcH/FxcXp9OnTKl++vDw8PHK6HCCNzPyMZiY7cCoWAADAQRDsAAAAHATBDgAAwEEQ7AAAABwEwQ4AAMBBEOwAAAAcBMEOAADAQRDsAAAAHATBDgAAwEEQ7AAAABwEwQ4AAMBBEOwAAAAcBMEOAADAQRDsAAAAHIRLThcAAEBOiVxULadLyBSvPkdzugQ84JixAwAA9+zYsWMKCgpSkSJFFBYWZtO2fPlyFShQQMuXL7/rOL/99psGDRokLy+vLK3vypUrKleunJ599tksHfdBw4wdAAC4JxEREfrpp5+0YsUKXblyJU37+fPndePGDZ0/f/6O4xw/flw//fSTFi9erLi4uCyt8ebNm7p8+bLy5MmTpeM+aJixAwAA98TX11cDBw7Uk08+mW77yJEjde7cOY0cOfKO41SpUkXDhw9X7dq176meYcOGpVlWrlw5nTt3Tvv27bunsR90BDsAAJAl3N3db9tWsmTJDI/j4eFhdw2hoaGaP39+um0+Pj7M2AEAAGSExWLJknGcnOyLJ6dOndKzzz6r2NjYLKnjYUSwAwAgl+nZs6csFov14+/vb23bu3evKlSoIIvFopo1a0qSVqxYocaNG+upp55ShQoV9OSTT+rHH3/M0LbOnz+vqVOnqlq1alqyZEma9oMHD+pf//qXGjRooIYNG2rAgAG6efNmuuP07t1bTZs2VcOGDVW2bFkFBgYqJiZGknTy5EkFBgYqKipKkuTv7y9/f3+FhIQoPj5eK1eu1HPPPaennnoqzdjXr1/XiBEj1KJFC9WtW1cVKlTQ8OHD9ddff1n7hISEaOjQoSpfvrwmTZqkX3/9VcOHD9djjz2m4sWLa968eRn6fmQ3gh0AALnMkiVLNGfOHElSjRo1FBwcbG177LHHtHLlSj3xxBM6ePCgFi9erK5du2r06NH68ccfdeDAAV24cEHt2rVTZGTkHbeTnJystWvXat26dTp27Fia9i1btqhRo0Zq3bq1fv31V+3cuVOFChXSnj17bPolJCSoefPmCg0NVXBwsHbt2qU333xTn3zyiaZOnSpJqlSpktasWaNHH31UkhQcHKzg4GA1a9ZMwcHB2rdvn9avX6+kpCSbsSMiIlS/fn3lyZNHP/30k/bv369FixZp4cKFatSokS5fvixJatasmRo1aqSwsDB9//33unz5sj766CPt2bNHtWrV0uDBgxUaGpqp45AdCHYAAORCAwYMUPXq1XX8+HGFh4fbtH399dcaN26cnJ2d9e2330qS6tWrJ0kqUKCAnn32Wd24cSPdsPZ3zs7O6t+/v7p06ZKm7ebNm3r55ZcVEBCgQYMGSbp1KnfSpEkqXLiwTd/Q0FCdOHFCderUkYvLrQd6dO7cWdKtGca7adWqlcaNG5du2+uvv66bN29q4sSJ1mUtWrTQxIkTdfz4cQUGBlqXp9bVsmVLPffcc9aan332WaWkpOjnn3++ay3ZjWAHAEAuZLFYNHz4cCUlJenTTz+1Lr9586a2bt2q1q1bS5LGjBmjTz/91HrzQ1RUlK5duyZJGb6WLb0bFpYtW6YLFy6obdu2NstdXFxUvXp1m2V16tTR9OnTbe52PX369D3XcPHiRa1cuVL169eXs7OzTVvv3r3l5OSkb775xnpKNrXPP/sWLFhQ0q1TujmNYAcAQC7VrVs3FSlSRHPnzrUGpKVLl6pHjx7WGyEaNWqkwYMHa+vWrerZs6eGDRtm7WuMydB20rupInV2K727Zf/Z38XFRSNGjFCJEiX0wQcf6IUXXrCePr6XGvbs2aPk5OR07+YtWLCgKlasqJSUlLvOTKaOnZycnKFashPBDgCAXMrDw0ODBw/W1atXtWTJEhlj9OWXX6p79+7WPpcvX1abNm00ZcoUTZkyRZ999pnq1Klzz9tOnfVLTEzMUP/ly5erVq1aKlKkiL799luNGDHinmtIvfHidg9O9vHxkaQsfwtGdiLYAQCQiw0aNEh58uTRxx9/rO+//15+fn7W05bGGD3//PPat2+fVq9erVKlSmXZdkuUKCFJOnLkyF37rlu3Tt27d9eoUaPUvXv3LHusSmpA/f3339O9Ezc2NlaFCxdW5cqVs2R79wPBDgCAXMzX11fdu3fXiRMnNHDgQL322mvWtitXrmj37t3y9fWVm5ubdXnq6c9/nga93fKUlJQ0y9u1ayfp1rV2/7xTNVXq8nXr1skYYw2Dd9pW6vVvqdu8Uw3Vq1eXv7+/oqOjtWLFCpv+MTExOn78uPr372+9YSP1VOvtTv9m9LRwdiLYAQCQyw0bNkwWi0VPPvmkTXjy9fWVr6+vDh06pPfee087d+7UmDFjtHLlSknS9u3bNW3aNGv/U6dOSfr/GxtSnTx5UpL0xx9/WJe1bdtW7dq10++//64BAwYoISFBknTo0CHrNW2HDx9WdHS09WaKiRMn6pdfftGqVavUsWNHOTk56fTp0/r++++1ceNGSf9/zV5YWJgiIyOt1+Kl1nD27Fmb07+fffaZihUrpjFjxujAgQOSbgW4oKAg1atXT2PHjrX2PX78eJr9kKQLFy7Y7H9OspgHIV7mIlFRUfLy8lJkZKQ8PT3v+/ZDW9S/79tMVeunPXfvBABZIC4uTqdPn1b58uXv6fVUuUnbtm01btw41a9v+/fETz/9pMGDB+v8+fOqX7++Jk+erMTERLVt21aPPPKIFi9eLB8fHzVv3lwHDx6UJHl6eqpXr16aMWOGnnrqKQUHBys5OVnOzs7y9/e3Ptw4MTFRU6ZM0eeffy5nZ2f5+fnpkUce0bfffqu4uDg9/fTT6tixo2rWrKn+/fvrv//9rwoVKqTOnTvrrbfeUseOHbVz506NHDnS+h7a0NBQvfjii3J2dtYrr7yiESNGaN68eXr77bd15coVSVLFihW1ZMkSNW3aVNKtsDdu3Dj98MMPqlChgtzd3dW8eXONGDHCemPFgAEDtGTJEsXHx0u69fiXdevWqVOnTtqxY4c1LD722GPatWtXmjtn/ykzP6OZyQ4Eu/uMYAcA2Y9ghwdddgU7TsUCAAA4CIIdAACAgyDYAQAAOAiCHQAAgIMg2AEAADgIgh0AAICDINgBAAA4iIc22G3cuFF+fn7y9/fXE088oT59+ujy5cs2fc6fP68XX3xRTZs2VaNGjbR8+fJ0xzpy5Ihat24tPz8/NWnSxPr06n/avn27/P39rdvds4fnsgEAgAeHS04XYI+ff/5ZnTt3VkhIiOrUqaOUlBT17dtXzzzzjHbv3i1nZ2dFRETIz89Pffv21ahRo3T58mXVrVtXiYmJ6tWrl3WsEydOyM/PT7NmzVLnzp117NgxPf7441q1apVatmxp7bdt2za1bt1aGzZsUJMmTbRlyxYFBARo69atql27dk58GwAAAGw8lDN2ixYtUkBAgOrUqSNJcnJy0uuvv659+/bp999/lySNGzdO0dHRGjFihCSpSJEiGjhwoAIDAxUREWEda8iQISpdurQ6d+4sSapatao6duyoPn36WF8PkpycrAEDBqhly5Zq0qSJJMnPz08NGjRQv3797tt+AwAA3MlDGewSEhL0+++/KykpyWaZh4eHSpQooZiYGC1ZskTNmjWTi8v/T0r6+fkpOjpaS5culXTrZb0bNmxQQECAzfh+fn46c+aM1qxZI0kKCQlRaGhouv127typffv2ZdeuAgAAZNhDGexeffVVHT16VEOHDlXqq27nzZunjz/+WL6+vgoJCVFcXJyqVKlis161atUk3QpqkqzX0mVVv/TEx8crKirK5gMAAJAdHspr7J555hl99NFHeuONN3TlyhUFBASoa9eu1hm1sLAwSVKxYsVs1vPy8rJpz+p+6Zk6daomTZqU4X0DAACw10M5YydJw4YN0xtvvKHk5GS99tprOnTokLXt2rVrkqS8efParJN6WjY2NjZb+qVn9OjRioyMtH7Onj2bib0EAADIuIdyxk66ddND586d1bhxY40bN07Dhg3T2bNn9eGHH8rDw0NS2sAVFxcnSfLx8ZGkLO+XHnd3d7m7u2d+BwEA2a7E/IfrjMqF/hNyugQ84B7KYDd79mzt2rVLn3zyiSTp7bffVmJioqZNm6Y2bdqoYsWKkqSrV6/arJf6dZkyZSQpy/sBAADkpIfyVOznn3+uChUq2Cx75513VKJECa1evVp+fn5ycXHRsWPHbPqcPHlSkqzPp2vRooUkZVk/AACAnPRQBrv8+fPrxIkTNsucnZ1VpEgR5cuXTz4+PurUqZN+/PFH612zkhQcHCxvb2916NBBklSnTh01adJEmzZtshkrODhYlStXlr+/v6RbN2uUK1cu3X7+/v6qXLlyNuwlAABA5jyUwS4oKEh79+7V4sWLrcv+97//6dy5c9YHBk+fPl3Srdk96dadqwsWLNDMmTPl7e1tXW/OnDk6fPiwNm/eLEnau3evVq9erblz58rV1VWS5Orqqnnz5mn9+vU6fPiwJGnt2rUKDQ3VrFmzsn+HAQDIBuHh4Zo2bVq2jT9z5sw7PjkCWe+hvMauTZs2+vbbbzVlyhTNmDFDRYoUUaFChbRr1y7r9W7FixfXli1b9Nprr+mLL75QSkqK5s+fr7Zt29qMVadOHW3evFlBQUGaPHmynJ2dtXbtWjVt2tSmX6tWrfTNN9+oZ8+eypMnj/Lly6ctW7aoVq1a922/AQDISkFBQWkubcoqFy5c0NSpU9P8vYvs9VAGO0l64YUX9MILL9yxT7Vq1fTjjz/edawnnnhCW7duvWu/Nm3aqE2bNhktEQCAB9a4ceO0bNkyTZiQ9XfaRkRE6LnnnlN4eHiWj407eyhPxQIAAPtNmzbN+trMJUuWyN/fX7169ZJ061FeEyZMUJs2bVSnTh2VKVNGEyZMsHmNZ3x8vEaMGCF/f3/Vq1dPLi4uslgsCgsL05UrVzRo0CBdvHhRktS5c2f5+/vr66+/vv87mgsR7AAAyGVGjhypGTNmSJJ69uyp4OBgLV68WAkJCWrdurWqV6+utWvX6uDBg3rrrbc0efJkvfrqq9b1J0yYoJiYGAUHB2vfvn06ePCgfH19JUmFCxfWN998o9atW0uS/v3vfys4OFidOnW67/uZGxHsAACAJOmTTz6Rl5eXOnfubF3Wv39/+fj4aNmyZTp+/Lgkaf369TYP569Ro4aCgoLue71I66G9xg4AAGStr776ShEREdbHfaXy9vZWgQIFdOLECVWpUkVly5bVtGnT5OzsrDfeeEOenp568803c6Zo2CDYAQAASdLRo0c1aNAg6yPDbmfmzJlq27atJk+erBkzZqh///4aNWrUHV+xifuDU7EAAECSlJycrH379t21X4UKFbRv3z7Nnz9f3t7emj59umrUqKHQ0ND7UCXuhGAHAAAkSeXLl9fPP/+sXbt2pWnbsWOHfvnlF+vXrq6u6tevn44fP64333xT4eHhGjFixP0sF+kg2AEAkAs5OztLklJSUqzLOnbsKGOMnn/+ea1fv976Ws4DBw7ojTfeUKNGjSRJQ4cOta7j5uamadOmqXr16jp37twdx0f2I9gBAJALlSxZUpKsr/xau3atRo4cqUceeURXrlzRc889p8KFC6tUqVKqV6+e3nrrLeurNjdv3qxJkyYpISFBknT58mVduXJFXbp0SXf8xMRErV+//j7uXe7FzRMAgFzrQv+sf+vCw6JChQoaPny45s+fL0kaNGiQ9XWZ48eP18qVKxUREaEyZcpo/vz5eu6556zrGmM0ceJEffLJJ6pWrZqSk5M1efJkDRw40NpnwIAB+v7779WrVy9169ZNI0eOvO/7mBtZTOo8K+6LqKgoeXl5KTIyUp6envd9+6Et6t/3baaq9dOeHNs2gNwlLi5Op0+fVvny5eXh4ZHT5QBpZOZnNDPZgVOxAAAADoJgBwAA4CAIdgAAAA6CYAcAAOAgCHYAAAAOgmAHAADgIAh2AAAADoJgBwBwWDyqFQ+q7PrZJNgBAByOk9Otv96Sk5NzuBIgfak/m6k/q1mFYAcAcDiurq5ydnZWbGxsTpcCpCs6Olqurq7W9+9mFYIdAMDhWCwW5c2bV5GRkcza4YETGxurqKgoFShQQBaLJUvHdsnS0QAAeEAUKVJEYWFh+vPPP+Xj4yN3d/cs/0sUyChjjJKTkxUdHa2oqCi5u7vL19c3y7dDsAMAOCQ3NzeVKlVKERERunjxYk6XA0i6dZlAwYIF5evrK2dn5ywfn2AHAHBYefPmVZkyZZSUlKSkpKScLge5nJOTk1xdXbN15phgBwBweC4uLnJx4a88OD5ungAAAHAQBDsAAAAHQbADAABwEAQ7AAAAB0GwAwAAcBAEOwAAAAdBsAMAAHAQBDsAAAAHQbADAABwEAQ7AAAAB0GwAwAAcBAEOwAAAAdBsAMAAHAQBDsAAAAHQbADAABwEAQ7AAAAB0GwAwAAcBAEOwAAAAdBsAMAAHAQBDsAAAAHQbADAABwEC72rrhixQpJkrOzszp16qTo6Gh169ZNwcHB8vf315IlS+Tt7Z1lhQLIvNAW9XNs27V+2pNj2waA3MruGbtu3bpp7dq1atiwoSRp8ODBWr9+vQYPHqxKlSopMDAwy4oEAADA3dk9Y1e8eHEtX75cTk5OOnbsmL788ku99dZbmjx5siSpefPmWVYkAAAA7s7uGbuqVavKyenW6m+//bYKFy6sUaNGWdvPnj1779UBAAAgw+yesfP29tbChQt15coVrVixQnPnzlXevHklSUuXLtXp06ezrEgAAADcnd3Bbu7cuRo2bJgOHDigkSNHqn///pKksWPH6rvvvlOVKlWyrEgAAADcncUYY7J60ISEBLm5uWX1sA4hKipKXl5eioyMlKen533fPndJ5i4cbwB4+GUmO9h9jV2HDh1u23bw4EGtXr3a3qEBAABgB7uD3bVr127b9sgjj2jmzJn2Dg0AAAA7ZOoauwkTJujrr79WQkKCLl26pAoVKqTb7+rVqypUqFCWFAgAAICMyVSwmzRpkl566SW98MIL8vDwUNmyZdP0sVgseuyxx2wefQIAAIDsl+m7YmvWrKmtW7dq6NCh+uqrr7KjJgAAANjBrmvsihYtqkWLFt2xD9fYAQAA3F92P8cuX758io6O1rFjxxQbG6u/PzXl4sWLmjBhAu+LBQAAuI/sDnbLly/XgAEDFBsbm6bNGCOLxXJPhQEAACBz7A52b7zxhl588UU1atTI+iqxVFevXtX48ePvubiMMMZo9erV+ve//62SJUuqdu3a6tGjh6RbD/QbOnSojhw5ouTkZHXq1ElvvPFGmjHOnz+vIUOGKDw8XElJSXrttdfUrVu3NP2OHDmiYcOGKSYmRsnJyRo/frxatWqV7fsIAACQEXYHu0ceeURffPHFbdvPnj1r79AZdvXqVb3yyitKTk7WF198oWLFilnb4uPj9dRTT+mxxx7Tjh07FBMTo0aNGik6OloTJ0609ouIiJCfn5/69u2rUaNG6fLly6pbt64SExPVq1cva78TJ07Iz89Ps2bNUufOnXXs2DE9/vjjWrVqlVq2bJnt+woAAHA3dj+g2N/fX/Hx8bdtr127tr1DZ8hff/0lf39/paSkaN26dTahTpJmzJihffv26Z133pEk5c2bV2+++aamTJmi33//3dpv3Lhxio6O1ogRIyRJRYoU0cCBAxUYGKiIiAhrvyFDhqh06dLq3LmzJKlq1arq2LGj+vTpo8TExGzdVwAAgIywO9g9//zzevvtt3XmzJk0n127dmnMmDFZWWcaXbp00cWLF7V8+XK5uKSdeJwzZ47q1q0rHx8f6zI/Pz8lJydr/vz5kqSYmBgtWbJEzZo1sxnDz89P0dHRWrp0qSTp1KlT2rBhgwICAmy24efnpzNnzmjNmjXZsYsAAACZYvep2GbNmikyMlJTp07NynoyZPXq1dqwYYMmTZokX1/fNO1HjhzRmTNn1LRpU5vlZcqUUZ48eRQSEiJJCgkJUVxcnKpUqWLTr1q1atb24cOHa+PGjZJ0x37t27dPt9b4+Hibmc2oqKjM7CoAAECG2R3sWrduLW9vb/n6+srJ6f8n/owxOnPmjHW2KzssWLBAklSyZEkNHDhQ+/fvV/78+TV48GC1a9dOYWFhkpTm9KwkeXl5Wdtv18/Ly8umPaP90jN16lRNmjQpo7sGAABgN7uD3auvvqqnnnrqtu1xcXH2Dn1Hxhht3rxZhQsXVtmyZdW7d2/FxMSoR48eat++vT7//HO5ublJUpq7dSXJxcXF+oiWa9eupdsv9bRsZvulZ/To0Ro+fLj166ioKJUuXTrjOwwAAJBBdl9jd6dQJ0mDBg2yd+g7ioiIUFxcnOrXr2+tIW/evJo9e7bc3Nw0atQoeXh4SEo/cMXFxVmvu7tdv9RQmtl+6XF3d5enp6fNBwAAIDvYPWN3u1OtxhhdvXpVoaGhaa5xywqps2T/DEhFihTRE088oZCQEOuM2NWrV236pKSk6Pr166pbt64kqWLFiun2S/26TJkymeoHAACQk+wOdj179pTFYrF5ldjfFS5c2O6i7sTb21slS5bUmTNn0rQVK1ZMLi4ueuSRR+Tr66tjx47ZtIeFhSkpKcn63Dk/Pz+5uLik6Xfy5ElJsvZr0aKFJN21HwAAQE66p3fFLlq0KN0bFFasWKEOHTrcU2F30rNnT02bNk3nzp1TqVKlrMtPnTql1q1by93dXf3799d7772nyMhI600OwcHBcnV1Vc+ePSXdOoXaqVMnbdq0yeY1aMHBwfL29rbuQ506ddSkSRNt2rRJ7777rnV7wcHBqly5svz9/bNtXwEAADLK7mvs3nrrLXXq1EnNmjVL85k+fbr27t2blXXaGDVqlGrUqKHBgwdbHw781Vdf6cSJE/rggw8k3bppoWLFitavr127pvfff18TJkxQ5cqVrWNNnz5dkvT5559LujWrt2DBAs2cOVPe3t7WfnPmzNHhw4e1efNmSdLevXu1evVqzZ07V66urtm2rwAAABllMbc7l3qP2rVrp2+//TY7hpZ06yaKoKAg/fbbb8qbN68KFSqk9957TzVq1LD2uXjxogYNGqTw8HClpKSob9++6t27d5qxjh49qtdee00JCQlKSUlRUFCQ2rZtm6bfjh07FBQUJGdnZzk7O2vy5MmZvo4wKipKXl5eioyMzJEbKUJb1L/v20xV66c9Obbt3IrjDQAPv8xkB7uD3ZYtW9JdHhcXp+3bt+uTTz6xPiYE/49gh/uJ4w0AD7/MZAe7r7Hz9/e3XpP2d6k58e/XogEAACD72R3sXF1dNXnyZJubJywWi/LmzavatWuratWqWVIgAAAAMsbuYNe+fXuNHDkyK2sBAADAPbA72H311VeSpJiYGIWEhOj69euqVKmSGjRokGXFAQAAIOPsDnaS9OWXX2rIkCG6fv26dVnFihU1d+5cBQQE3GttAAAAyAS7g92aNWvUvXt3FS9eXF27dlW5cuXk6empkydPqm/fvvryyy/1xBNPZGWtAAAAuAO7g90777yjYcOG6Z133pG7u7tN28CBAxUYGKjvvvvuXusDAABABtkd7K5fv259q8M/lS1bVjdv3rS7KAAAAGSe3a8UK1269G3bLl68qGPHjtk7NAAAAOxgd7CrXr26ZsyYob+/uCIpKUmrVq1Ss2bN9OSTT2ZJgQAAAMgYu0/FTpkyRU2bNtWUKVNUsWJF3bx5U3/++adiYmJUpkwZTZ8+PSvrBAAAwF3YPWPn6emp3bt3a+jQobpx44ZOnz6tEiVKKCgoSPv371eJEiWysk4AAADcxT09x87Dw0Njx47V2LFjs6oeAAAA2CnDwW716tXW/3dycpK/v7/y589v0+fixYs6evSomjdvnnUVAgAAIEMyfCr2+PHjateunZYsWaLq1aunCXWSVLx4cbm6umrJkiVZWSMAAAAyIMMzdnXr1lXnzp315Zdf3rFf06ZNdfr0ae3Zs0f169e/5wIBABkT2iLnfufW+mlPjm0bwP/L8Izd0qVLM3yna+fOnfXFF1/YXRQAAAAyL8PB7vz58xm+09XV1VXh4eF2FwUAAIDMy3CwS0pKytTAf/75Z6aLAQAAgP0yHOxiY2OVkJCQob43btzQ5cuX7S4KAAAAmZfhYPfYY49pwYIFGeo7b948Va1a1e6iAAAAkHkZvit24MCBatiwofLnz6+ePXvett8333yjsWPHavHixVlRHwAASAd3QSM9GQ52tWvX1rhx4/Tqq6/q448/1r/+9S/VqlVLhQoVUkxMjE6dOqVvv/1WW7duVcuWLfXyyy9nZ90AAAD4h0y9Umz06NHKmzevRo4cqXfffTdNuzFG7dq10/Lly7OsQAAAAGRMpt8VGxgYqBdffFGfffaZtm3bprNnz8rDw0OPPvqounXrpoCAgOyoEwAAAHeR6WAnSaVKldKECROyuhYAAADcgwzfFQsAAIAHG8EOAADAQRDsAAAAHATBDgAAwEEQ7AAAABzEPQW79evXq2nTpqpXr54kKTQ0VP369VNoaGiWFAcAAICMszvYffbZZ2rTpo22b9+u69evS5Jq1aqlgQMH6vHHH1dwcHAWlQgAAICMsDvYvfPOO5o0aZKioqJUtmxZ6/K6devK19dXI0aMyJICAQAAkDF2PaBYknx8fDRu3DhJksVisS43xujatWu6fPnyvVcHAACADLN7xs7X11dJSUmSboW5VMuXL1dMTIzKlClz79UBAAAgw+wOdt27d9dLL72kY8eOSZIuXbqkTz/9VIMGDZLFYtHw4cOzrEgAAADcnd2nYrt06aKIiAg9/vjjio6OVsmSJWWMkbu7uyZNmqQBAwZkZZ0AAAC4C7uDnSQNGTJEvXv31o4dO3T58mV5eXmpcePG8vb2zqr6AAAAkEH3FOwkKV++fHrqqafSLF+wYIH69et3r8MDAAAggzIU7M6cOZOpQc+dO6e33nqLYAcAAHAfZSjYNWrUSOHh4dldCwAAAO5BhoJdr169tGXLFvn7+8vF5e6rnDt3TkuWLLnX2gAAAJAJGQp2/fr1k5+fn1q1apXhgf/+bDsAAABkvwwFu7Jly9q8NiwjFi1aZFdBAAAAsI/dDyiWpMOHD6tfv36qW7euatSooWeffVYLFy60vpECAAAA94/djzsJCQlR69atFR8fL0kqVKiQ/vjjD23YsEELFy7Upk2bVLBgwayqEwAAAHdh94zdsGHD9Mgjj2jjxo2KjY3VlStXFBcXp3379qlIkSIaNmxYVtYJAACAu7B7xu769ev6/ffflSdPHusyi8WiRx99VN9++63q1q2bJQUCAAAgY+yesWvZsqVNqPs7V1dXFSpUyGbZ9u3b7d0UAAAAMsDuYBcYGKivv/463baVK1fazNglJCSoR48e9m4KAAAAGWD3qdgOHTro0qVLGjVqlCwWi3X5jRs3dPXqVZUqVUqrV6+WJP3111+Kioq692oBAABwW3YHu+LFi8vDw0NeXl537GeMkaurK8EOAAAgm9kd7IYMGaK2bdtmqK8xRhUqVLB3UwAAAMgAu6+xu9vrxUaPHm39f4vFov/85z/2bgoAAAAZYPeMnYeHh06cOKHffvtNcXFxNu+GDQ8P18yZMzV16lTrsnr16t1bpQAAALgju4PdRx99pDfffFPGGJtQl+rvN1QAAAAg+9kd7N59912NHTtWjRs3lru7u01beHi4evbsea+1AQAAIBPsDnaPPfaYJk6ceNv2Y8eO2Ts0AAAA7GD3zRONGzdWXFzcbduLFi1q79AAAACwg93Bbvjw4Zo9e7bOnDmT5vPrr7/qrbfeyso6AQAAcBd2n4pduXKl3nrrLb355ptZWQ8AAADsZHewGzt2rOrWrSt/f395eHjYtF24cEGff/75PRcHAACAjLM72JUsWVLbtm2Tk1P6Z3PDw8PtLiqzdu/eraZNm2rTpk3y9/e3Lj9y5IiGDRummJgYJScna/z48ek+WHn79u0aM2aMUlJS5OTkpA8++ED169dP02/NmjWaOnWqXFxclC9fPs2aNUuVKlXKzl0DAADIMLuD3fPPP3/bUCdJkydPtnfoTImKilKXLl2UmJhos/zEiRPy8/PTrFmz1LlzZx07dkyPP/64Vq1apZYtW1r7bdu2Ta1bt9aGDRvUpEkTbdmyRQEBAdq6datq165t7bdq1Sr17t1be/fuVaVKlbRs2TL5+flp7969Kl68+H3ZVwAAgDux++aJvn37as2aNem2JSYmqmPHjnYXlRmvv/66nn766TTLhwwZotKlS6tz586SpKpVq6pjx47q06ePNQQmJydrwIABatmypZo0aSJJ8vPzU4MGDdSvXz/rWFFRURo8eLB69+5tnaF75ZVXlC9fPg0fPjy7dxEAACBD7A52LVq0UK9evVShQoU0n6JFi+rkyZNZWWe6Fi9erJo1a+rxxx+3WX7q1Clt2LBBAQEBNsv9/Px05swZayANCQlRaGhouv127typffv2Sbo1W3f58uU0/Z588klrGwAAQE6zO9gVL15cPj4+KlWqlMqWLWvz8fX1zcoa03Xs2DGtWbNGQUFBado2btwoSapSpYrN8mrVqkm6Feiyql9SUpK2bdt22zrj4+MVFRVl8wEAAMgOdl9j9+KLL2rw4MHptqWkpKhOnTp2F3U38fHxCgwM1BdffJHuO2nDwsIkScWKFbNZ7uXlZdOe1f3SM3XqVE2aNOmO+wMAAJAV7J6x69Gjx23bTp8+rRUrVtg79F2NHDlSQ4cOve3bLa5duyZJyps3r81yF5dbOTY2NjZb+qVn9OjRioyMtH7Onj17l70DAACwj90zdvnz55cxRpcvX1ZCQoKMMda2xMREzZ8/X7Nnz86SIv9u7dq1cnNzU+vWrW/bJ/W5ev8MXKmvQPPx8bG7X/78+W/bLz3u7u5yd3e/y14BAADcO7tn7DZu3KhChQqpRIkSKleunMqXL2/91KxZU19//XVW1mn10Ucf6aOPPpKLi4v107t3b0lSQECAXFxcVLFiRUnS1atXbdZN/bpMmTKSlOX9AAAAcpLdM3ZjxoxR+fLl5e/vr99++01169ZVgQIFJN164G92Pe7ks88+082bN22W/e9//9PYsWO1aNEiNWjQQCkpKZJu3WDxd6l36qY+x65FixaaOXOmjh07pmbNmt2x3//+9z8dO3ZMZcuWtenn5uZmsy4AAEBOsTvY3bx5U7///rucnZ21a9cuHThwwPrst2vXrmnhwoVZVuTflS9fPs2yPXv2WNtq1aolSWrSpIk2bdqkd99919ovODhYlStXtr6d4plnnlG5cuW0adMmm+fWBQcHy9/fX5UrV5YkdevWTWPHjtWmTZusz8wzxmjLli3q0qWL8uXLly37CgAAkBl2n4otUaKEnJ2dJUkNGzbU2rVrlZCQIOnWNWe7d+/OmgrtNGfOHB0+fFibN2+WJO3du1erV6/W3Llz5erqKklydXXVvHnztH79eh0+fFjSrWv4QkNDNWvWLOtYPj4++uijj7R06VJdunTJOn5KSopNcAQAAMhJds/YlS9fXs2bN1e9evU0fvx4tW3bVv/6178UGBioXbt2WQNVTqlTp442b96soKAgTZ48Wc7Ozlq7dq2aNm1q069Vq1b65ptv1LNnT+XJk0f58uXTli1brDN/qfr06SNnZ2c999xzyps3r4oXL66tW7fyOjEAAPDAsJi/386aCdeuXVPXrl21d+9e/fDDD3rkkUf07LPPasOGDZKkAQMGaM6cOVlarCOIioqSl5eXIiMj5enped+3H9qi/n3fZqpaP+3JsW3nVhzv3IXjnbtwvHOPzGQHu2fsfHx89P3339ssW716tb7//nsVKFDAeh0bAAAA7g+7g126g7m46Pnnn8/KIQEAAJBBdt888Xd//vmnunbtqho1aqhdu3YKDQ3NimEBAACQCRmesXNzc5N068X3L7/8skaPHi1Junjxoho3bqxLly7JxcXF+vXOnTtVo0aN7KkaAAAAaWR4xi4pKUlt27bV/v37raFOkgIDA3Xx4kU1aNBAZ86c0V9//aWgoCCNHTs2WwoGAABA+jIc7FxdXTV37lzrs+skaefOnVq1apXy5s2rb775RkWLFpUkjR07Ns1bHwAAAJC9MhzsateuLV9fX5tlY8aMkcVi0dChQ23e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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(16, 9))\n", "rst_mix.plot.bar(color=rgb_colors, width=0.75)\n", "plt.xlabel('Missing Rate(%)', fontsize=14)\n", "plt.ylabel('Sample Counts', fontsize=14)\n", "plt.xticks(rotation=-45, fontsize=14)\n", "plt.yticks(fontsize=14)\n", "plt.tight_layout()\n", "plt.legend(loc='best', fontsize=16)\n", "plt.savefig('./miss_counts.png')" ] }, { "cell_type": "code", "execution_count": 21, "id": "ed3eca73-9607-4c32-af5a-918b07f5abfe", "metadata": {}, "outputs": [], "source": [ "import matplotlib as mpl" ] }, { "cell_type": "code", "execution_count": 7, "id": "f3e6fbc9-97bd-4bb5-9cfa-7bb86fd8c59b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'/root/.cache/matplotlib'" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mpl.get_cachedir()" ] }, { "cell_type": "code", "execution_count": null, "id": "e0a6c359-293e-40ab-842b-9eecd2b7d29f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 44, "id": "5b1001ae-d846-4841-bd0c-0af673103e62", "metadata": {}, "outputs": [], "source": [ "draw_data = pd.read_csv('./data_count.csv')" ] }, { "cell_type": "code", "execution_count": 45, "id": "fe12a6da-ad4d-45b8-9d66-96398e98e6b9", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
monthcountmeanstdmin25%50%75%max
02022-0131.00.3758940.2787280.0244020.1536360.3114350.5413881.000000
12022-0227.00.2233230.2476660.0000000.0315310.1105740.3599280.904019
22022-0331.00.3469380.3267580.0000000.0550480.2806220.5822251.000000
32022-0430.00.2416670.2556290.0005260.0313160.1183490.4027270.823110
42022-0531.00.2611530.2913430.0000000.0421530.0990430.3776790.899809
52022-0630.00.3074100.2497770.0259330.0977870.2162680.5388280.885215
62022-0731.00.4718890.2580720.0044020.2864590.5025840.6389470.914545
72022-0831.00.4114850.2864030.0090430.1942110.3547850.6030860.945215
82022-0930.00.2406350.2506890.0000480.0394620.1361960.3774160.910239
92022-1031.00.3343960.2746840.0000000.1168180.2910530.4948330.883923
102022-1129.00.4058540.3088610.0166030.1070810.4761720.6294740.941579
112022-1231.00.2233860.1944960.0069380.0605020.1827270.2711720.680622
\n", "
" ], "text/plain": [ " month count mean std min 25% 50% \\\n", "0 2022-01 31.0 0.375894 0.278728 0.024402 0.153636 0.311435 \n", "1 2022-02 27.0 0.223323 0.247666 0.000000 0.031531 0.110574 \n", "2 2022-03 31.0 0.346938 0.326758 0.000000 0.055048 0.280622 \n", "3 2022-04 30.0 0.241667 0.255629 0.000526 0.031316 0.118349 \n", "4 2022-05 31.0 0.261153 0.291343 0.000000 0.042153 0.099043 \n", "5 2022-06 30.0 0.307410 0.249777 0.025933 0.097787 0.216268 \n", "6 2022-07 31.0 0.471889 0.258072 0.004402 0.286459 0.502584 \n", "7 2022-08 31.0 0.411485 0.286403 0.009043 0.194211 0.354785 \n", "8 2022-09 30.0 0.240635 0.250689 0.000048 0.039462 0.136196 \n", "9 2022-10 31.0 0.334396 0.274684 0.000000 0.116818 0.291053 \n", "10 2022-11 29.0 0.405854 0.308861 0.016603 0.107081 0.476172 \n", "11 2022-12 31.0 0.223386 0.194496 0.006938 0.060502 0.182727 \n", "\n", " 75% max \n", "0 0.541388 1.000000 \n", "1 0.359928 0.904019 \n", "2 0.582225 1.000000 \n", "3 0.402727 0.823110 \n", "4 0.377679 0.899809 \n", "5 0.538828 0.885215 \n", "6 0.638947 0.914545 \n", "7 0.603086 0.945215 \n", "8 0.377416 0.910239 \n", "9 0.494833 0.883923 \n", "10 0.629474 0.941579 \n", "11 0.271172 0.680622 " ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "draw_data" ] }, { "cell_type": "code", "execution_count": null, "id": "bde6046e-7a70-4a0c-ac83-fdf4d0a3b0d5", "metadata": {}, "outputs": [], "source": [ "fig, ax = plt.subplots(figsize=(16, 9))\n", "# plt.plot(range(1, 13), des['mean'].values, '*-')\n", "bp = ax.boxplot(draw_data, showmeans=True, patch_artist=False, widths=0.5, boxprops=dict(linewidth=2),\n", " medianprops=dict(color='red', linewidth=2),\n", " meanprops=dict(marker='*', markersize=8, linewidth=2),\n", " # whiskerprops=dict(color='black', linewidth=1.5),\n", " # capprops=dict(color='black', linewidth=1.5)\n", " )\n", "# 创建一个仅包含标记的图例项\n", "circle = mlines.Line2D([], [], color='green', marker='*', linestyle='None', markersize=8, label='Mean Point')\n", "median_line = mlines.Line2D([], [], color='red', marker='', linestyle='-', linewidth=2, label='Median Line')\n", "ax.set_xlabel('Month', fontsize=16)\n", "ax.set_ylabel('Missing Rate', fontsize=16)\n", "ax.set_xticklabels(months, fontsize=16)\n", "# 获取当前的y轴标签\n", "yticklabels = ax.get_yticklabels()\n", "\n", "# 设置y轴标签的字体大小\n", "for label in yticklabels:\n", " label.set_fontsize(16)\n", "# 添加图例\n", "ax.legend(handles=[median_line, circle], fontsize=16)\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.16" } }, "nbformat": 4, "nbformat_minor": 5 }