Files
ailearning/docs/da/087.md
2020-10-19 21:08:55 +08:00

96 KiB
Raw Blame History

标签

In [1]:

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

%matplotlib inline

legend() 函数被用来添加图像的标签,其主要相关的属性有:

  • legend entry - 一个 legend 包含一个或多个 entry一个 entry 对应一个 key 和一个 label
  • legend key - marker 的标记
  • legend label - key 的说明
  • legend handle - 一个 entry 在图上对应的对象

使用 legend

调用 legend() 会自动获取当前的 Axes 对象,并且得到这些 handles 和 labels相当于

handles, labels = ax.get_legend_handles_labels()
ax.legend(handles, labels) 

我们可以在函数中指定 handles 的参数:

In [2]:

line_up, = plt.plot([1,2,3], label='Line 2')
line_down, = plt.plot([3,2,1], label='Line 1')
plt.legend(handles=[line_up, line_down])
plt.show()

![](data:image/png;base64,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 AAAAAElFTkSuQmCC )

可以将 labels 作为参数输入 legend 函数:

In [3]:

line_up, = plt.plot([1,2,3])
line_down, = plt.plot([3,2,1])
plt.legend([line_up, line_down], ['Line Up', 'Line Down'])
plt.show()

![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXYAAAEACAYAAACnJV25AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAALEgAACxIB0t1+/AAAF95JREFUeJzt3X+M1PWdx/HXG1jrWmxhi4IoK8lBW9sKWhXw5w6N11Su xYZeiomE0CilPdcfJeYoIBHJWZMzJp69KhaXruQabAW1KlqTQxcxBoiwCFbxR+SHikXiUk8k6qLv +2Nn191lZufXd+b76/lIJpkfn5357rfjh2c/+53vmLsLAJAcg8LeAABAsJjYASBhmNgBIGGY2AEg YZjYASBhmNgBIGEGnNjN7Hgz22xm283sZTO7Lc+4u8zsdTN70czOrs6mAgCKMWSgB939YzOb6u5H zGyIpOfM7CJ3f657jJlNkzTO3ceb2WRJ90iaUt3NBgDkU3Apxt2PZK8eJ2mwpI5+Q6ZLuj87drOk YWY2MsiNBAAUr+DEbmaDzGy7pAOSnnH3l/sNOVXSW71uvy3ptOA2EQBQimKK/XN3P0tdk/UlZpbJ Mcz6/1gA2wYAKMOAa+y9ufsHZrZO0rmS2no99I6kMb1un5a9rw8zY7IHgDK4e/94HlCho2JGmNmw 7PV6Sf8sqb3fsEclzc6OmSLpH+5+INfzrdi6QiP+c4T+Y8N/qPOzTrk7lzIuN998c+jbkKQL+5P9 GZXLmjWuUaNcN97oOnKk675yFFqKOUXS09k19s2SHnP39WY2z8zmSZK7PyHpTTN7Q9K9kv4t35Nd /d2rtfXnW/Xsvmc15b4peum9l8raaABIkoMHpZkzpcWLpYcekm6/XaqvL//5BpzY3X2nu3/X3c9y 9wnufnv2/nvd/d5e45rdfZy7T3T3bQM9Z+NXG/XXK/+qX5z7C029f6puffZWHf38aPm/AQDE2Nq1 0oQJUmOj1N4unX9+5c8ZyidPzYx6r0Amkwl7ExKF/Rks9mdxgq703qzcNZySX8jMc72Wu6ulvUUL 1y/UDZNv0IKLFmjIoKL/pgsAsbN2rdTcLM2aJS1bNvCEbmbyEv94GvrE3m3fB/s097G5ev/I+2r9 cau+c/J3arJdQNKZlTQnIES55shYT+wS9Q5UQ3ZiCHszUEC+/51iP7F3o96B4DCxx0OQE3skT9vL kTMAUL5IFntv1DtQGYo9HhJf7L1R70A6bdy4Ud/85jfD3oxYivzELnHcO5BkY8eO1fr164+5/+KL L9auXbsCf709e/Zo0KBB+vzzz/vcP2fOHC1ZsiTw1wtDLCb2btQ7kDxmFolDMqOyHUGI1cQuUe9A WrS1tWnMmC9OHDt27FjdcccdmjhxooYNG6YrrrhCn3zySc/jjz/+uM466ywNHz5cF154oXbu3Fn2 a7e2turCCy/Utddeq2HDhumMM87Q008/XdHvU0uxm9i7Ue9AupiZHnzwQT311FPavXu3duzYodbW VklSe3u7rrrqKq1YsUIdHR2aN2+epk+frk8//bTs19uyZYvGjRun999/X7fccotmzJihQ4cOBfTb VFdsJ3aJegeCYhbMpdquu+46jRo1SsOHD9ePfvQjbd++XZL0+9//XvPmzdN5550nM9Ps2bP1pS99 SZs2bSr7tU4++WRdf/31Gjx4sH7605/qG9/4htatWxfUr1JVsZ7Yu1HvQGXcg7lU26hRo3qu19fX 6/Dhw5KkvXv36o477tDw4cN7Lm+//bbefffdY55jyJCuT7N3dnb2ub+zs1N1dXU9t0899dQ+j59+ +unav39/YL9LNSViYpeodyCNuv/Y2djYqMWLF+vQoUM9l8OHD2vmzJnH/Mwpp5yiuro67d69u8/9 b775pk4//fSe2++80/eL4Pbu3XvMZB9ViZnYu1HvQPx8+umn+vjjj3sun332WVE/1/2Bnrlz52r5 8uXasmWL3F0fffSR1q1b11P0vQ0ePFg/+clPtHjxYnV0dKizs1OrV6/Wrl27dNlll/WMe++993TX XXeps7NTDz74oF599VVNmzYtmF+4yhI3sUvUOxA306ZN0wknnNBzueWWWwoeftj78XPOOUcrVqxQ c3OzGhoaNH78eK1atSrvz959991qaGjQhAkTNHLkSN19991at26dTjrppJ4xkydP1uuvv66TTjpJ S5Ys0Zo1azR8+PDgfukqivwpBSrFGSORdpxSoHStra1qaWnRxo0ba/aaqTqlQKWodwBpk/iJvRtr 7wCKFfdPoSZ+KSYXzhiJNGEpJh5YiqkQ9Q4gyVJZ7L1R70g6ij0eKPYAUe8Akib1xd4b9Y4kotjj gWKvEuodQBIwsffDce9ANPDVeOVjYs+Degdqo9ZfjSdJgwYN0tChQ3XiiSdqxIgRuvTSS/XnP/+5 Kq8VBib2AVDvQPWF9WGgHTt26MMPP9Rrr72mOXPmqLm5WcuWLav5dlQDE3sRqHeg9mr11XgNDQ2a NWuW7rnnHt12220935K0f/9+TZ8+XV/72tc0fvx43XfffZKkjz/+WPX19ero6JAk3Xrrraqrq+s5 k+SSJUv0q1/9SlLXF2Rfc801+uEPf6ivfOUrmjJlit58883Kd04BTOxFot6BcFX7q/GmT5+uo0eP asuWLZKkK664Qo2NjXr33Xe1Zs0aLVq0SM8884yOP/54TZo0SW1tbZKkDRs2aOzYsXruued6bmcy mZ7n/dOf/qSlS5fq0KFDGjdunBYvXhzI/hgIpzksUXe9t7S3aOr9UzljJBLBbglmKcRvru5hld1f jScp71fjSdLs2bP1m9/8Rps2bdIll1xS1HPX1dVpxIgR6ujo0FtvvaXnn39eTz75pI477jhNnDhR V199tVatWqWpU6eqqalJGzZs0OWXX66dO3dq0aJFPRP6Cy+80POaZqYZM2bo3HPPlSRdeeWVmj9/ ftC75RjMRmXorvfv/9P3NfexuXr4voc57h2xVu0JOSj9vxqv+6vq9u7dq1WrVum3v/1tz+OdnZ05 vxovn87OTh08eFANDQ3av3+/Ghoa9OUvf7nn8cbGRr3wwguSpKamJs2fP1/btm3TmWeeqUsvvVRX XXWVNm/erHHjxvU5b/vIkSP7bHOuL/8IGksxFWDtHQhXOV+Nl89f/vIXDRkyRJMmTdLo0aPV0dHR ZxLet2+fTjvtNEnS+eefr1dffVUPP/ywMpmMzjjjDO3bt09PPPFEn2WYsDCxV4i1d6BytfxqvP4/ 29HRoT/+8Y9qbm7Wr3/9aw0fPlxjxozRBRdcoIULF+qTTz7Rjh07tHLlSs2aNUuSdMIJJ+icc87R 7373OzU1NUmSLrjgAi1fvrzndu/XqDUm9oBQ70D5av3VeJI0ceJEnXjiiRo/frxWrlypO++8U0uX Lu15fPXq1dqzZ49Gjx6tGTNmaNmyZfre977X83hTU5OOHj2qSZMm9dw+fPhwnzX9XL9DLQ7t5Fwx VcA5ZxAlnCsmHjhXTMRR7wDCRLFXGfWOsFHs8UCxxwj1DqDWKPYaot4RBoo9Hij2mKLeAdQCxR4S 6h21QrHHQ5DFzsQeIndXS3uLFq5fyDlnUDVhnBIX5WFiTxDqHWly8KDU3Cy9+KL0hz9I558f9hZF G2vsMcXaO9Ji7VppwgSpsVFqb2dSrxaKPWKodyQRlV6+wIvdzMaY2TNm9jcze8nMrssxJmNmH5hZ e/ZyU6kbji9Q70gaKr32Bix2MxslaZS7bzezoZK2Svqxu7/Sa0xG0nx3nz7gC1HsJaPeEWdUejAC L3Z3/7u7b89ePyzpFUmjc712KS+K4lDviCsqPVxFr7Gb2VhJGyR9OzvJd9/fJOkhSW9LekfSje7+ co6fp9grQL0jDqj04JVT7EUdNJ1dhlkj6frek3rWNklj3P2ImV0m6RFJX8/1PL3PdZzJZCLxTSNx wXetIurWru2a1GfNklpbpfr6sLcontra2nq+KLtcBYvdzOokPS7pSXe/s+ATmu2WdI67d/S7n2IP CPWOKKHSq6saR8WYpBZJL+eb1M1sZHaczGySuv6x6Mg1FsFg7R1RwVp6NBU6KuYiSc9K2iGpe+Ai SY2S5O73mtk1kn4p6aikI+o6QmZTjuei2KuAekcYqPTa4ZQCKcU5Z1BLvdfSly1jLb3amNhTjnpH NVHp4eBcMSnH2juqhbX0eKHYE4p6RxCo9PBR7OhBvaNSVHp8UewpQL2jFFR6tFDsyIl6R7Go9GSg 2FOGekcuVHp0UewoiHpHf1R68lDsKUa9pxuVHg8UO0pCvacXlZ5sFDskUe9pQaXHD8WOslHvyUel pwfFjmNQ78lCpccbxY5AUO/JQaWnE8WOAVHv8USlJwfFjsBR7/FDpYNiR9Go92ij0pOJYkdVUe/R RaWjN4odZaHeo4FKTz6KHTVDvYePSkc+FDsqRr3XFpWeLhQ7QkG91w6VjmJQ7AgU9V4dVHp6UewI HfUePCodpaLYUTXUe2WodEgUOyKGei8flY5KUOyoCeq9OFQ6+qPYEVnUe2FUOoJCsaPmqPe+qHQM hGJHLFDvX6DSUQ0UO0KV1nqn0lEsih2xk8Z6p9JRbRQ7IiPp9U6loxwUO2ItyfVOpaOWKHZEUlLq nUpHpSh2JEYS6p1KR1godkRe3OqdSkeQKHYkUpzqnUpHFFDsiJWo1juVjmqh2JF4Uax3Kh1RQ7Ej tsKudyodtUCxI1XCrHcqHVFGsSMRalXvVDpqjWJHatWi3ql0xAXFjsQJut6pdISJYgcUbL1T6Ygj ih2JVm69U+mIisCL3czGmNkzZvY3M3vJzK7LM+4uM3vdzF40s7NL2QCgmsqpdyodcTdgsZvZKEmj 3H27mQ2VtFXSj939lV5jpklqdvdpZjZZ0n+5+5Qcz0WxI1SF6p1KRxQFXuzu/nd33569fljSK5JG 9xs2XdL92TGbJQ0zs5GlbARQCwPVO5WOJCl6jd3MxkraIOnb2Um++/7HJN3m7s9nb/+vpAXuvrXf z1PsiIzuej/wf+9r1KZW7dnyHSodkVROsQ8p8omHSloj6frek3rvIf1u55zBly5d2nM9k8kok8kU tZFA0Bq/2qi5x/9VV7W06LVLpurf59yg8yYvUJH/SQBV09bWpra2toqeo2Cxm1mdpMclPenud+Z4 fLmkNnd/IHt7l6Qmdz/QbxzFjkjov5Z+6reiecZIQKrOUTEmqUXSy7km9axHJc3Ojp8i6R/9J3Ug KnKtpUfxjJFAJQodFXORpGcl7dAXyyuLJDVKkrvfmx3335J+IOkjST9z9205notiR2iKPeIl7DNG Av2VU+x8QAmJt3Zt16Q+a5a0bJlUXz/weHdXS3uLFq5fqBsm36AFFy3QkEGsvSMcTOxAL5Uel069 Iwo4VwyQFcRx6ay9I64odiRKtT49Sr0jLBQ7Uq2anx6l3hEnFDtir9bneKHeUUsUO1InjHO8UO+I OoodsRSVMzFS76g2ih2pEKUzMVLviCKKHbERlUrPh3pHNVDsSKwoVXo+1DuigmJHpEW90vOh3hEU ih2JEodKz4d6R5godkROXCs9H+odlaDYEXtxrvR8qHfUGsWOSEhapedDvaNUFDtiKYmVng/1jlqg 2BGatFR6PtQ7ikGxIzbSVOn5UO+oFoodNZX2Ss+Hekc+FDsijUrPj3pHkCh2VB2VXhrqHb1R7Igc Kr101DsqRbGjKqj0YFDvoNgRCVR6cKh3lINiR2Co9Oqi3tOJYkdoqPTqo95RLIodFaHSw0G9pwfF jpqi0sNDvWMgFDtKRqVHC/WebBQ7qo5Kjx7qHf1R7CgKlR4P1HvyUOyoijVrqPS4oN4hUewYAJUe b9R7MlDsCAyVHn/Ue3pR7OiDSk8m6j2+KHZUhEpPLuo9XSh2UOkpQ73HC8WOklHp6UO9Jx/FnlJU OiTqPQ4odhSFSkc36j2ZKPYUodIxEOo9mih25EWloxDqPTko9oSj0lEO6j06KHb0QaWjXNR7vFHs CUSlI0jUe7godlDpCBz1Hj8Ue0JQ6agF6r32qlLsZrbSzA6Y2c48j2fM7AMza89ebiplA1A5Kh21 Qr3HQ8FiN7OLJR2WtMrdz8zxeEbSfHefXuB5KPaAUekIE/VeG1UpdnffKOlQodcu5UVROSodYaPe o6uoNXYzGyvpsTzF3iTpIUlvS3pH0o3u/nKOcRR7AKh0RBH1Xj3lFPuQAF53m6Qx7n7EzC6T9Iik r+cauHTp0p7rmUxGmUwmgJdPjzVrpGuvlWbNklpbpfr6sLcI6NJd7y3tLZp6/1TdMPkGLbhogYYM CmKKSZe2tja1tbVV9BwVF3uOsbslnePuHf3up9jLRKUjTqj3YIVyHLuZjTQzy16fpK5/LDoK/BiK xFo64oa19/AVc1TMaklNkkZIOiDpZkl1kuTu95rZNZJ+KemopCPqOkJmU47nodhLQKUjCaj3ypVT 7HxAKYJ6r6UvW8ZaOuLN3dXS3qKF6xey9l4GJvaYo9KRZNR7eThXTIyxlo6kY+29dij2kFHpSCPq vXgUe8xQ6Ugr6r26KPYQUOnAF6j3gVHsMUClA31R78Gj2GuESgcKo96PRbFHFJUOFId6DwbFXkVU OlA+6r0LxR4hVDpQGeq9fBR7wKh0IHhprneKPWRUOlAd1HtpKPYAUOlA7aSt3in2EFDpQG1R74VR 7GWi0oHwpaHeKfYaodKBaKDec6PYS0ClA9GV1Hqn2KuISgeijXr/AsVeAJUOxE+S6p1iDxiVDsRT 2uudYs+BSgeSI+71TrEHgEoHkiWN9U6xZ1HpQPLFsd4p9jJR6UA6pKXeU13sVDqQXnGpd4q9BFQ6 kG5JrvfUFTuVDqC/KNc7xV4AlQ4gl6TVeyqKnUoHUKyo1TvFngOVDqAUSaj3xBY7lQ6gUlGod4o9 i0oHEIS41nuiip1KB1AtYdV7qoudSgdQTXGq99gXO5UOoNZqWe+pK3YqHUAYol7vsSx2Kh1AVFS7 3lNR7FQ6gCiJYr3HptipdABRV416T2yxU+kA4iAq9R7pYqfSAcRVUPWeqGKn0gHEWZj1Hrlip9IB JE0l9R77YqfSASRRres9EsVOpQNIi1LrPZbFTqUDSJNa1HvBYjezlZL+RdJ77n5mnjF3SbpM0hFJ c9y9PceYPsVOpQNIu2LqvVrF/gdJP8j3oJlNkzTO3cdL+rmkewo9IZVemba2trA3IVHYn8Fifxav WvVecGJ3942SDg0wZLqk+7NjN0saZmYjcw08eFCaOVO66SbpoYek22+X6uvL2ex04z+cYLE/g8X+ LI2Z6ervXq2tP9+qZ/c9qyn3TdFL771U0XMGscZ+qqS3et1+W9JpuQZS6QCQW5D1HtQfT/uv/+Rc uKfSASC/XPVe1vMUc7ijmY2V9FiuP56a2XJJbe7+QPb2LklN7n6g37jafZM1ACRIqX88HRLAaz4q qVnSA2Y2RdI/+k/q5WwYAKA8BSd2M1stqUnSCDN7S9LNkuokyd3vdfcnzGyamb0h6SNJP6vmBgMA BlazT54CAGoj0E+emtkPzGyXmb1uZgvyjLkr+/iLZnZ2kK+fNIX2p5llzOwDM2vPXm4KYzvjwMxW mtkBM9s5wBjem0UqtD95bxbPzMaY2TNm9jcze8nMrsszrvj3p7sHcpE0WNIbksaqa6lmu6Qz+o2Z JumJ7PXJkjYF9fpJuxS5PzOSHg17W+NwkXSxpLMl7czzOO/NYPcn783i9+UoSWdlrw+V9Gqlc2eQ xT5J0hvuvsfdOyU9IOnyfmOK/jATitqf0rGHmiIHD/CDdihqf0q8N4vi7n939+3Z64clvSJpdL9h Jb0/g5zYc31Q6dQixuT8MBOK2p8u6YLs/zV7wsy+VbOtSx7em8HivVmG7KHlZ0va3O+hkt6fQRzu 2K3Yv8IW9WEmFLVftkka4+5HzOwySY9I+np1NyvReG8Gh/dmicxsqKQ1kq7PlvsxQ/rdzvv+DLLY 35E0ptftMer6V2WgMadl78OxCu5Pd//Q3Y9krz8pqc7MGmq3iYnCezNAvDdLY2Z1ktZK+h93fyTH kJLen0FO7C9IGm9mY83sOEkz1fXhpd4elTRbkgb6MBMkFbE/zWykmVn2+iR1Hb7aUftNTQTemwHi vVm87H5qkfSyu9+ZZ1hJ78/AlmLc/aiZNUt6Sl1HdLS4+ytmNi/7OB9mKkEx+1PSv0r6pZkdVde5 8K8IbYMjjg/aBavQ/hTvzVJcKGmWpB1m1v1dFoskNUrlvT/5gBIAJEzoX40HAAgWEzsAJAwTOwAk DBM7ACQMEzsAJAwTOwAkDBM7ACQMEzsAJMz/A0F5tMDKB4A7AAAAAElFTkSuQmCC )

产生特殊形状的 marker key

有时我们可以产生一些特殊形状的 marker

块状:

In [4]:

import matplotlib.patches as mpatches

red_patch = mpatches.Patch(color='red', label='The red data')
plt.legend(handles=[red_patch])

plt.show()

![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAALEgAACxIB0t1+/AAAEk9JREFUeJzt3W2MnFXdx/Hvv1tEK1tKLTbYR6pEECKCscItdxmf4opB EokQEGjRBEICgVeW9oXdRIWgRg2acCOphBcqiSDSmyAEwYmKgFQFLLRI4cY+rJKiPLRY04f93y92 2G6X3XnYzszS4/eTTDJnrnOd+fd057fXnmuumchMJEllmTLZBUiS2s9wl6QCGe6SVCDDXZIKZLhL UoEMd0kqUMNwj4gfRsQLEfHnOn2uj4hnIuLxiDipvSVKklrVzJH7zUDfeBsj4gzgPZl5DHAJcEOb apMkTVDDcM/M3wAv1enyWeCWWt9HgBkRMbs95UmSJqIda+5zgM0j2luAuW0YV5I0Qe06oRqj2n6m gSRNoqltGGMrMG9Ee27tsf1EhIEvSROQmaMPoBtqx5H7GuAigIg4BXg5M18Yq2Nmestk1apVk17D m+XmXDgXzkX920Q1PHKPiJ8ApwOzImIzsAo4pBbWN2bm3RFxRkRsBF4DLp5wNZKktmgY7pl5XhN9 Lm9POZKkdvAK1UlQqVQmu4Q3DediH+diH+fiwMWBrOm09EQR2a3nkqRSRAQ5gROq7Xi3jKQuiGj5 9a2DTDsPgA136SDiX7/lavcvb9fcJalAhrskFchwl6QCGe6SOq6/v58LL7xwsssAoFqtMm/evMYd ayqVCqtXr+5gRZ1huEsHs4jO35pw2GGH0dvbS29vL1OmTGHatGnD7R//+McH9Tt9IqLp+hcuXMgD DzzQ4YqaY7hLOmA7duxg+/btbN++nQULFnDXXXcNt88///yOvstncHCwY2O3qvae9MkuAzDcJXVB RLBr1y6WLl3K9OnTOeGEE/jDH/4wvH1gYICzzz6bd77znSxatIjvfe974461bNkyLrvsMs444wwO O+wwqtVq3f137tzJsmXLmDlzJscffzyPPvpo3Vrvu+8+jj32WGbMmMEVV1yx3wd4Pfvss3zsYx9j 1qxZHHnkkVxwwQW88sorAFx44YVs2rSJM888k97eXr71rW8B8PnPf56jjjqKGTNmcPrpp/PUU09N eB5b0sVPNktJEzfmawg6f2vRwoUL8/7779/vsVWrVuVb3/rW/MUvfpGDg4O5YsWKPOWUUzIzc+/e vXnyySfnV7/61dy9e3c+99xzuWjRorz33nvHHH/p0qV5+OGH5+9+97vMzPzXv/5Vd//ly5fnkiVL 8qWXXsrNmzfn8ccfn/PmzRtz7G3btmVvb2/efvvtuWfPnvzOd76TU6dOzdWrV2dm5saNG/OXv/xl 7tq1K7dt25ZLlizJq666qu6//eabb84dO3bkrl278qqrrsoPfOADYz73eBlZe7z1zJ3IThN6IsNd OiAHe7h/8pOfHG4/+eST+ba3vS0zMx9++OGcP3/+fv2vueaavPjii8ccf9myZbl06dLhdqP9R/+i +MEPfpBz584dc+xbbrklTz311P0emzt37nC4j3bHHXfkSSedNNwe698+0ksvvZQRka+++uobtrU7 3L1CVVJXzJ6976uVp02bxr///W8GBwf561//ysDAAEccccTw9r1797JkyZJxx5o7d983eTbaf2Bg YL93x8yfP3/ccQcGBvYbG9hv3xdeeIErr7yS3/72t2zfvp3BwUFmzpw57niDg4OsXLmS2267jW3b tjFlyhQighdffJHe3t5x92sHw11Sx9V7t8m8efM4+uij+ctf/jKh8ebPn193/6OOOopNmzZx3HHH AbBp06Zxx33Xu97FnXfeOdzOTDZv3vcV0StXrqSnp4d169YxY8YMfv7zn3PFFVeMWRfAj370I9as WcP999/PggULePnll5k5c+brqxkd5QlVSR1XL8wWL15Mb28v3/jGN9i5cyd79+5l3bp1rF27tqmx Gu1/zjnncO211/Lyyy+zZcuWuidrP/OZz/Dkk09yxx13sGfPHq6//nr+/ve/D2/fsWMHb3/725k+ fTpbt27lm9/85n77z549m2effXa//oceeigzZ87ktddeY+XKleNPUpsZ7pI6bqz3ir/e7unp4a67 7uKxxx5j0aJFHHnkkVxyySW8+uqrTY01ZcqUuvuvWrWKBQsWcPTRR9PX18dFF1007l8S73jHO/jp T3/K1VdfzaxZs9i4cSOnnXba8PZVq1bxxz/+kcMPP5wzzzyTs88+e7+xVqxYwde+9jWOOOIIvv3t b3PRRRexYMEC5syZwwknnMCpp57atff8+3nu0kHizfQearXfeP+/E/08d4/cJalAhrskFchwl6QC Ge6SVCDDXZIKZLhLUoG8QlU6iBzMn4uu7jLcpYOE73FXK1yWkaQCGe6SVCDDXZIKZLhLUoEMd0kq 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 )

点线组合:

In [5]:

import matplotlib.lines as mlines
import matplotlib.pyplot as plt

blue_line = mlines.Line2D([], [], color='blue', marker='*',
                          markersize=15, label='Blue stars')
plt.legend(handles=[blue_line])

plt.show()

![](data:image/png;base64,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 EFOmWk0euQAAAABJRU5ErkJggg== )

指定 legend 的位置

bbox_to_anchor 关键词可以指定 legend 放置的位置,例如放到图像的右上角:

In [6]:

plt.plot([1,2,3], label="test1")
plt.plot([3,2,1], label="test2")
plt.legend(bbox_to_anchor=(1, 1),
           bbox_transform=plt.gcf().transFigure)

plt.show()

![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZQAAAESCAYAAADaLCNlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAALEgAACxIB0t1+/AAAFqNJREFUeJzt3X+MVeWdx/HPdwRTWlBEu8OiTMbaatdWg60KVSx3mi5B /NU/TGwCNnWFqru2JbutxNZE1tg0EUysMbsSOzpE2tottEWqdHGRC9ZWNkvBgqKWditgCtj6Y1VK Bf3uH3NnvFzunfvrnHvOec77lZzkzszjmcfjdZ6877nnHnN3AQDQrq6kJwAACAMLCgAgEiwoAIBI sKAAACLBggIAiAQLCgAgEqOSngAApImZcS1FA9zdKr/HggIAFbg+b2RmR60lknjJCwAQERYUAEAk WFAAAJFgQQEARIIFBQAyore3V48//nhb+xgYGNBFF110xPfWr1+vvr4+jR8/XqeeemrL+2ZBAYCM MLNY3oE2duxYzZs3T4sXL25rPywoAJABV199tXbt2qXLLrtM48aN05IlS/TUU0/pggsu0AknnKAp U6Zow4YNw+MHBgZ02mmn6bjjjtOHPvQhff/739dzzz2n66+/Xr/61a80btw4TZgwQZJ03nnnac6c OW3ViaTB91uzsbGxsQ1ug38W06m3t9fXrVvn7u579uzxE0880desWePu7o899pifeOKJ/qc//cnf fPNNP+644/yFF15wd/e9e/f6M8884+7uAwMDPn369Kr7f+yxx7y3t7fuPErH6KhjR6EAQBPMotna tXz5cs2ePVuzZs2SJH32s5/Vueeeq0ceeURmpq6uLm3btk1/+ctf1N3drTPPPFNSvBdtsqAAQBPc o9na9eKLL+pHP/qRTjjhhOHtySef1N69e/X+979fP/zhD3Xvvfdq0qRJuvTSS/X888+3/0vrYEEB gIwo/8iTnp4eXX311Xr11VeHtzfeeEM33XSTJGnmzJlau3at9u7dq49+9KOaP3/+UfuIGgsKAGRE d3e3fve730mS5syZo9WrV2vt2rV65513dPDgQRWLRb300kvav3+/Vq1apbfeekujR4/WBz7wAR1z zDHD+9izZ48OHTo0vF9318GDB3Xo0CG5u/7617/q7bffbn6C1U6ssLGxseV1U4pPyq9atcp7enp8 /Pjxfuedd/qmTZt8xowZPmHCBP/gBz/ol156qe/evdv/+Mc/+owZM/z444/38ePHe19fn+/YscPd 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 VsmYJAjFAAAAAElFTkSuQmCC )

更复杂的用法:

In [7]:

plt.subplot(211)
plt.plot([1,2,3], label="test1")
plt.plot([3,2,1], label="test2")
# Place a legend above this legend, expanding itself to
# fully use the given bounding box.
plt.legend(bbox_to_anchor=(0., 1.02, 1., .102), loc=3,
           ncol=2, mode="expand", borderaxespad=0.)

plt.subplot(223)
plt.plot([1,2,3], label="test1")
plt.plot([3,2,1], label="test2")
# Place a legend to the right of this smaller figure.
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)

plt.show()

![](data:image/png;base64,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 u9RzUXWNDRGREMlZ2M2sysw2Eb859Tp3fyNliK6xISISIjkDSu5+BLjAzAYBvzSzJnePpQzLeQ0D 3fNUCs2z3H5R37/csh0/KS95nxXj7n8BVgLjUt7K+xoGp915Gvf95j6OHDlS8msgd23z5s0r+Rw0 r55vu3c7X/2qM2aM89JL+dXsUs85zJtES66zYk4zs9rE4wHAl4GNKcPyvoZB7Bsx7t94P1OXTuXd Pe/2efJSmZYvh/POg+HDYeNGuOyyUs9IJFxydeyfB55NrLFvADrcfa2Z3ZR0zZJVwJ8S1zBYBPzv TDs793Pnsv769VzZcCXj/msci367SN2C5O3Pf4arr4Yf/hCeeALa2mDAgFLPSiR8inatGDPz5M/a vHsz1664ltqTarm/5X5G1I4oyjxSxWIxmpqaSvLZ2Whex1q+HG69FWbPhh/96PiCbmZ4jjV2NRGZ 5Tp+Ul5KVtgBDh05RNuLbdz18l3c0XwHN158I4krfYoA8S79llvg1Vdh8eLMyy4q7H2jwh4tJb2k wAlVJ/D9Sd/X2rukVSlr6Q0NDTz77LN92seSJUuYNGnSMa+tW7eO5uZmamtraWxs7NP+pbyE4lox WnuXZJW2lp7olgPfb01NDd/85jdpa2sLfN8SckU8ncrz8fr7r/u4n43zKQ9P8Xc+fievn5HoePxx 9zPOcP/e99z37cv/5xLfrz5//4pt9uzZXlVV5QMGDPCamhpva2vz9evX+2WXXea1tbV+/vnneywW 6x6/ePFiHzlypJ966qne2Njojz76qG/ZssVPPPFE79evn9fU1PjgwYOP+YxnnnnGGxoass4j1/HT Vl5b8T6oB3+xOg93+r89929+2p2n+X2/uc+PHDmS989Kedq92/2rX3UfM8b9pZd6/vPlWtjd3Rsa Gnzt2rXu7r5jxw4fOnSor1692t3jRXno0KH+wQcf+N69e33gwIG+bds2d3fftWuXb9682d3dlyxZ 4pdffnna/auwV94WiqWYVFp7ryyVspaej6VLlzJjxgymTZsGwJQpUxg3bhwrV67EzKiqquK1117j s88+o66ujnPOOQeg6x8vESAka+yZaO092sK0lm4WzNZX7777Lo8//jiDBw/u3l588UV27drFySef zLJly7jvvvs488wzmTVrFlu3bu37h0rkhLqwg7r3qApbl+4ezNYbyaf4Dh8+nK997Wt8/PHH3dsn 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 EZtHunC15QAAAABJRU5ErkJggg== )

同一个 Axes 中的多个 legend

可以这样添加多个 legend

In [8]:

line1, = plt.plot([1,2,3], label="Line 1", linestyle='--')
line2, = plt.plot([3,2,1], label="Line 2", linewidth=4)

# Create a legend for the first line.
first_legend = plt.legend(handles=[line1], loc=1)

# Add the legend manually to the current Axes.
ax = plt.gca().add_artist(first_legend)

# Create another legend for the second line.
plt.legend(handles=[line2], loc=4)

plt.show()

![](data:image/png;base64,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 Qw89VOPHj9eKFStK/t4TTzyhRx55RL/+9a/V0NCgESNGaMSIEXq8Bjd7SPW4I4DaYhGw6jHuCADo UawTezYr3X9/1FEAQLLENrEX1nh5+umoIwGAZIndVAwTLwDQP7Gq2H/zG1ZiBID+itVUzJYt0l/+ QkIHkoqpmOpxz1MAsVTLZXHTaNUfV2na+GkHvRZKYjezOySdI+lv7l5ybUozu1XSNEm7JH3F3TeW 2IbEDqDudezrUEumRTc8cYMO+IFu7198wsW66eyb1DCkQVJ4c+x3Spra05tm1izpaHcfL+lrkn7S 1w5bW6WLLio7RhTJZDJRh5AqHM9gcTx7N2TgEF1/1vXaMHuDJhw+odv7d7bfqeN+fJxWv7y66s/o M7G7+3pJ23vZZIaku/LbPimpwcyOKLVh13uPXnZZNeFC4j+coHE8g8XxLM/k0ZP1zNee0XdP+64G 2MGp+PV3Xlfzz5t1yQOXVLXvIKZiRkt6rcvzrZKOLLUhEy8A8J5yqvdqBDXuWNz/KdlM596jANBd b9V7NcqaijGzcZIeKnXx1MyWSMq4+z3555slneHubxZtx5VTAKhCpRdPg/jm6YOS5kq6x8xOkfR2 cVKvJjAAQHX6TOxm9gtJZ0g6zMxek7RA0iBJcvel7r7KzJrN7BVJOyVdHGbAAIDe1ewLSgCA2gh0 rRgzm2pmm83sZTMreddWM7s1//5zZjYpyM9Pm76Op5k1mdnfzWxj/nFNFHEmgZndYWZvmtnzvWzD uVmmvo4n52b5zGyMmT1mZi+Y2R/MbF4P25V/frp7IA9J75P0iqRxyrVq2iUdW7RNs6RV+Z9PlrQh qM9P26PM49kk6cGoY03CQ9IUSZMkPd/D+5ybwR5Pzs3yj2WjpBPyPw+X9D/9zZ1BVuwnSXrF3f/P 3fdKukfSvxRtU/aXmVDW8ZS6j5qiBA/wi3Yo63hKnJtlcfe/unt7/ucdkl6S9MGizSo6P4NM7KW+ qDS6jG1KfpkJZR1Pl3Rq/n/NVplZ9284oFycm8Hi3KxCfrR8kqQni96q6PwM8kYb5V6FLevLTCjr uDwraYy77zKzaZLul/SRcMNKNc7N4HBuVsjMhktqlfSNfOXebZOi5z2en0FW7K9LGtPl+Rjl/lbp bZsj86+huz6Pp7u/4+678j+vljTIzA6tXYipwrkZIM7NypjZIEltku5291J3eq7o/Awysf9e0ngz G2dmh0g6X7kvL3X1oKRZktTbl5kgqYzjaWZHWH4BbDM7Sbnx1W21DzUVODcDxLlZvvxxul3Si+5+ cw+bVXR+BtaKcfd9ZjZX0hrlJjpud/eXzGxO/n2+zFSBco6npPMkXW5m+5RbC/+LkQUcc3zRLlh9 HU9xblbiNEkzJW0ys8K9LK6WNFaq7vzkC0oAkDKxupk1AKD/SOwAkDIkdgBIGRI7AKQMiR0AUobE DgApQ2IHgJQhsQNAyvw/a8UJ8l9tWroAAAAASUVORK5CYII= )

其中 loc 参数可以取 0-10 或者 字符串,表示放置的位置:

loc string loc code
'best' 0
'upper right' 1
'upper left' 2
'lower left' 3
'lower right' 4
'right' 5
'center left' 6
'center right' 7
'lower center' 8
'upper center' 9
'center' 10

更多用法

多个 handle 可以通过括号组合在一个 entry 中:

In [9]:

from numpy.random import randn

z = randn(10)

red_dot, = plt.plot(z, "ro", markersize=15)
# Put a white cross over some of the data.
white_cross, = plt.plot(z[:5], "w+", markeredgewidth=3, markersize=15)

plt.legend([red_dot, (red_dot, white_cross)], ["Attr A", "Attr A+B"])

plt.show()

![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAALEgAACxIB0t1+/AAAIABJREFUeJzt3X10VfW95/H3NxKvhgdFY61I0nSKTVO065a4erkh4inL 20VBvFNWqbJCL5euNWXmltsalWmlD8AMHW21NeuW8uTUCJ0oQof6hNbaQrSFWku0FGmkxpomSEUz PoDBWiDf+eOcpIfDOcl5SvbOyee11l6cs/dv//aXk+Sbnd/+PZi7IyIihaso6ABERGRwKdGLiBQ4 JXoRkQKnRC8iUuCU6EVECpwSvYhIgcs50ZvZXWZ22Mz2pTgeMbO3zOzZ2Pa1XK8pIiLpG5WHOhqB 7wGb+inzhLtfk4driYhIhnK+o3f3XwBvDFDMcr2OiIhkZyja6B2oMbO9ZvaImX14CK4pIiIx+Wi6 GcgzQJm7HzOzTwL3Ax8cguuKiAhDkOjd/Wjc60fNbI2Znefur8eXMzNNuiMikgV377d5fNCbbszs QjOz2OuPAZaY5Hu5e6i25cuXBx6DYhp+cb322mvcUFnJSaLtlvHb8iT7TgLfLCvjiYcfHlGfk2LK z5aOfHSvvBfYDVSaWaeZfc7MFpvZ4liRTwP7zOy3QANwXa7XFAmzratXU3/gQNo/XEXAss5OHlq6 lO7u7sEMTUaonJtu3H3+AMe/D3w/1+uIDBeHWlqYmMV5i1tbaWpo4PNf/WreY5KRTSNj+xGJRIIO 4TSKKX1BxVV05EjKY5F+zpsEdOzene9wBhTGr59iyi9Lt41nsJmZhyUWkVysiERY8cQT2Z+7c2ee I5JCZmb4AA9jh6J7pciIkssNy4mSkjxGkl+xPhUSoGy/t5ToRfKsZ9y4rM5rA8pravIbTJ7pr+7g 5PKLVm30Ink2obqagxme48D6qioW1NcPRkgywqmNXiTPurq6uKW2ltvS7GLZA9xaVkbtunVMnzVr sMPLWqwt+JR9XV1dbF29mkMtLRQdOdJXpmfcOCZUVzNvyRJKS0v7rTcfdYwEyT7/uP393+4H3dk/ rtO/ixSKfXv2+BcnT/aT4N7PdhL8i5Mne8uuXUGHPKDEn9F9e/b4DZWV3pni/9YJfkNlpe/bsydl nfmoY6RIlSNj+/vPrwMVGKpNiV4KTcuuXf6/ystTJvke8G+WlQ2LJO9+aqLZt2eP/3uOv8jyUcdI okQvElJPPPyw31hV5S8kJK8XwG+sqvIntm8POsS09f6Mvvbaa35DZeWACTo+UX+zrMyfePjhvrry UUcqV155pY8fP97ffffdU/a/733v85///Od971966SU3Mz958mRWn0djY6Obmd93331ZnZ8pJXqR EHv77bd9/apV/tVZs3x5JOJfnTXL169a5W+//XbQoWWk92d0zfLlKZta+ttuqqrq+z/no45kXnrp JT/77LO9srLSt27desqxiooK/9nPfnZKWTPzEydOpKyvv2ORSMQ/8pGP+OzZs9P6/HKlRC8ig673 Z/RrV1+dcYLu/Stm/apVeasjmZUrV/qcOXN81apVfvXVV/ftX7BggRcVFfnZZ5/tY8aM8W9/+9te Xl7uZuZjxozxsWPH+q9+9StvbGz0mpoar6+v9/PPP9+//vWvJ71Oe3u7FxcXe0tLi5955pn+yiuv 5PGTTi6XRK/ulSKSkf6meOhP/BQP+agjmU2bNnHttdfymc98hscee4xXX30VgB/+8IeUl5fz8MMP c/ToUZYuXcqTTz4JwFtvvcWRI0eYOnUqAE8//TQf+MAHePXVV1m2bFnK61x55ZVMmTKFyy+/nKam pqz+P0NFiV5EMpLLwJ1Rx47lrY5Ev/zlL3n55Ze55ppruOSSS/jwhz/MPffck7Ke6M3w6SZMmMAX vvAFioqKOOuss5KW2bRpE/PmzQNg3rx5bNrU35LZwVOiF5GMpEqQ6eid4iEfdSTauHEjn/jEJxg7 diwQTcAbN27MuP6ysrJ+j+/atYv29nbmzp0LwKc//Wn27dvH3r17M77WUNEUCCKSkXxM8ZDvaSLe eecdtmzZQk9PDxdddBEA7777Lm+++Sb79u3jsssuO+2viFR/VQz018bGjRtxdy677LLT9n/3u9/N 4H8zdHRHLyIZyccUD/meJuL+++9n1KhRtLa2snfvXvbu3UtraytXXHFF3139hRdeyIsvvth3zgUX XEBRUdEp+wbyl7/8hS1btnDnnXf2XWfv3r1873vf45577uHkyZMZ/q+GyEBPa4dqQ71uREKt92c0 6z7wcWMG8lFHvJkzZ/pNN9102v4tW7b4RRdd5CdPnvQHHnjAy8vL/dxzz/XvfOc77u7+jW98wy+4 4AIfP368P/XUU3733Xf7FVdckfIzuPfee33ChAmndbs8duyYn3/++b59EMdFpMqRpNHrRnPdiEha 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 Be7/A4OqIDdoxkFmAAAAAElFTkSuQmCC )

自定义 handle

In [10]:

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

class AnyObject(object):
    pass

class AnyObjectHandler(object):
    def legend_artist(self, legend, orig_handle, fontsize, handlebox):
        x0, y0 = handlebox.xdescent, handlebox.ydescent
        width, height = handlebox.width, handlebox.height
        patch = mpatches.Rectangle([x0, y0], width, height, facecolor='red',
                                   edgecolor='black', hatch='xx', lw=3,
                                   transform=handlebox.get_transform())
        handlebox.add_artist(patch)
        return patch

plt.legend([AnyObject()], ['My first handler'],
           handler_map={AnyObject: AnyObjectHandler()})

plt.show()

![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAEACAYAAABI5zaHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz AAALEgAACxIB0t1+/AAAFHJJREFUeJzt3XuMXOV9//H3FwMGRza2s8QkvmRjars4krmJS38EMsZR 2CK5JI4KMWDLBQX0UwyBP1IuCfVGqK2AJKqaKNzEzSAglFr68UvABAqbNlG4WBSHyzrBEIxvIiSm DgYTbPnbP3ZYL+vdndn17Kx5eL+kkefMeeac7zye+cyzz5kzE5mJJKks+410AZKkxjPcJalAhrsk Fchwl6QCGe6SVCDDXZIKVDPcI+LWiHg9Ip4boM2/RsRLEbE6Io5ubImSpMGqZ+R+G9DW38qIOB34 i8ycAVwAXN+g2iRJQ1Qz3DPzv4A3B2jyN8Ad1bZPAuMjYlJjypMkDUUj5twnA+t7LG8ApjRgu5Kk IWrUAdXotex3GkjSCNq/AdvYCEztsTyletsHRISBL0lDkJm9B9A1NWLk/gCwGCAiTgT+JzNf76th ZnrJZNmyZSNew75ysS/sC/ti4MtQ1Ry5R8Q9wOeBlohYDywDDqiG9Y2Z+WBEnB4Ra4G3gb8bcjWS pIaoGe6ZubCONksbU44kqRE8Q3UEVCqVkS5hn2Ff7GZf7GZf7L3YmzmdQe0oIpu1L0kqRUSQQzig 2ohPy0gaQMSgX5f6iGrkANhwl5rAv1pVS6MHAc65S1KBDHdJKpDhLkkFMtylJoqIpl1Gyvbt25k/ fz7jx4/nzDPP5O677+a0004btv3tt99+vPLKK8O2/f72tWTJEq666qqm7HcoPKAqfYS1trayefNm Nm3axMc//vHu248++mhWr17Nq6++yrRp0wa1zfvvv5/f//73bNmyhf326xo/nn322UOqb8mSJUyd OpWrr756SPcfTiP9JlqLI3fpIywimD59Ovfcc0/3bc899xzbt28fcnCtW7eOmTNndgf7QHbu3Dmk fewrhvIpqGY9ZsNdGiEJPA60VP/NAW4baF3P24bi3HPPZfny5d3Ld9xxB4sXL+4OrqeffprDDjvs A0G2YsUKjjrqqD22tWzZMq6++mp+/OMfM3bsWG699VZuv/12Tj755O42++23Hz/60Y+YMWMGs2bN AuDSSy9l0qRJHHLIIcyZM4cXXniBm266ibvvvptrr72WsWPHcsYZZ/T7GB555BFmzpzJhAkTWLp0 97ehvPzyy5x66qm0tLRw6KGHcu6557J169bu9a2trXzve9/jyCOPZPz48Xz1q1/lz3/+c/f66667 jk996lNMmTKFW2+9dcB+/MlPfsJRRx3FhAkTOOmkk3juud2/TNra2sq1117LnDlzGDt2LLt27Rpw Ww3RxG82S+mjqOdznx5Z/ThkS/Xf7HXpa1097Xtuvx6tra356KOP5qxZs7KzszN37tyZU6ZMyXXr 1mVE5Lp16zIzc/bs2fnQQw913+9LX/pSfv/73+9zm+3t7blo0aLu5dtuuy0/97nPdS9HRH7xi1/M N998M999991cuXJlHnvssbl169bMzFyzZk1u3rw5MzOXLFmSV1111YCPISJy/vz5uXXr1nzttdfy 0EMPzZUrV2Zm5tq1a/PRRx/N9957L99444085ZRT8pJLLvnA4z/hhBNy8+bNuWXLljziiCPyhhtu yMzMhx56KCdNmpQvvPBCvv3227lw4cKMiHz55Ze7a/v2t7+dmZnPPPNMfuITn8innnoqd+3alXfc cUe2trbme++9l5mZn/70p/Poo4/ODRs25Lvvvtvn4+jv/6x6+6Az15G7NEL+Fvg3oNLHukp13d8C HdVLPe2HatGiRSxfvpxHHnmE2bNnM3ny5A+sX7x4MXfddRcAW7Zs4Wc/+1m/8+i5e0DXryuuuILx 48czevRoDjzwQN566y06OzvZtWsXs2bN4rDDDvvA9mq5/PLLGTduHFOnTmXu3Lk8++yzABx++OHM mzePAw44gJaWFi699FJ+/vOff+C+F198MYcddhgTJkxg/vz53fe97777OO+885g9ezZjxozhO9/5 zh77fX/q6qabbuLCCy/kuOOOIyJYvHgxo0eP5oknnuhud/HFFzN58mRGjx5d8/E0ggdUpRHSX1C/ r1JtM7e6/Hgd7YciIli0aBEnn3wyv/vd7z4wJfO+c845h89+9rO888473HfffZxyyilMmjT0n0qe OnX37/vMnTuXpUuX8vWvf51169axYMECvvvd7zJ27Ni6t9fzzWDMmDFs27YNgNdff51vfOMb/OIX v+Ctt95i165dTJw4sd/7HnzwwWzevBmAzZs3c9xxx3WvG+jA8rp161i+fDk/+MEPum/bsWMHmzZt 6vMxN4Mjd0lMmzaN6dOn89BDD7FgwYI91k+ZMoUTTzyRFStWcNddd7Fo0aJ+t1XPgdjebS666CJW rVrFiy++yG9/+1uuu+66urc10PavvPJKRo0axfPPP8/WrVu58847657v/uQnP8lrr73Wvdzzem/T pk3jW9/6Fm+++Wb3Zdu2bZx11ll71NQshrs0QubS9ePDA13mDrL93rjlllt47LHHOPjgg/tcv3jx Yq655hqef/75Pt8A3lfPNEpPq1at4sknn2THjh2MGTOGgw46iFGjRgEwadKkQX+Gvef+t23bxsc+ 9jHGjRvHxo0bu9806rn/mWeeye23305nZyfvvPPOHtMyPaefvva1r3HDDTfw1FNPkZm8/fbb/PSn P+3+C2IkGO6SAJg+fTrHHHNM93LvkeaCBQt47bXX+PKXv8xBBx3U73Z6f/67r+We/vSnP3HBBRcw ceJEWltbaWlp4Zvf/CYA559/Pi+++CITJkzo9w2l9/Z6Li9btoxnnnmGQw45hPnz5/OVr3xlwBF0 z1rb2tq45JJLOPXUU5k5cybz5s3r93Ede+yx3HzzzSxdupSJEycyY8YMli9fPqKfg/f73KVhVv0+ 7u7rzTIcr7cZM2Zw4403cuqppzZ82x91PZ8nfdzu97lL+7IP8wBnxYoVRITB/iFhuEuqqVKpsGbN Gu68886RLkV1clpGGmb9/bkt9dToaRkPqEpSgQx3SSqQ4S5JBfKAqtQE+/L3fqtMhrs0zDyYqpHg tIwkFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAtUM94hoi4g1EfFS RFzWx/qWiFgZEc9GxPMRsWRYKpUk1W3AH+uIiFHAb4AvABuBp4GFmdnZo007MDozr4iIlmr7SZm5 s9e2/LEOSRqk4fqxjuOBtZn5ambuAO4FzujVZjMwrnp9HPDH3sEuSWquWt8KORlY32N5A3BCrzY3 A49FxCZgLHBm48qTJA1FrXCvZx7lSuDZzKxExOHAIxFxZGa+1bthe3t79/VKpUKlUhlEqZJUvo6O Djo6OvZ6O7Xm3E8E2jOzrbp8BbArM6/p0eZB4B8z85fV5f8ALsvMVb225Zy7JA3ScM25rwJmRERr RBwInAU80KvNGroOuBIRk4BZwCuDLUSS1DgDTstk5s6IWAo8DIwCbsnMzoi4sLr+RuCfgNsiYjVd bxZ/n5lbhrluSdIABpyWaeiOnJaRpEEbrmkZSdKHkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12S CmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalA hrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4 S1KBDHdJKpDhLkkFMtwlqUA1wz0i2iJiTUS8FBGX9dOmEhH/HRHPR0RHw6uUJA1KZGb/KyNGAb8B vgBsBJ4GFmZmZ48244FfAqdl5oaIaMnMP/SxrRxoX5KkPUUEmRmDvV+tkfvxwNrMfDUzdwD3Amf0 anM28O+ZuQGgr2CXJDVXrXCfDKzvsbyheltPM4CJEfF4RKyKiEWNLFCSNHj711hfzzzKAcAxwDxg DPCriHgiM1/a2+IkSUNTK9w3AlN7LE+la/Te03rgD5m5HdgeEf8JHAnsEe7t7e3d1yuVCpVKZfAV S1LBOjo66Ojo2Ovt1Dqguj9dB1TnAZuAp9jzgOpfAj8ETgNGA08CZ2Xmi7225QFVSRqkoR5QHXDk npk7I2Ip8DAwCrglMzsj4sLq+hszc01ErAR+DewCbu4d7JKk5hpw5N7QHTlyl6RBG66PQkqSPoQM d0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCX pAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kq kOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUA1wz0i2iJiTUS8 FBGXDdDuuIjYGRELGluiJGmwBgz3iBgF/BBoA2YDCyPiiH7aXQOsBGIY6pQkDUKtkfvxwNrMfDUz dwD3Amf00e4i4H7gjQbXJ0kaglrhPhlY32N5Q/W2bhExma7Av756UzasOknSkNQK93qC+l+AyzMz 6ZqScVpGkkbY/jXWbwSm9lieStfovadjgXsjAqAF+OuI2JGZD/TeWHt7e/f1SqVCpVIZfMWSVLCO jg46Ojr2ejvRNeDuZ2XE/sBvgHnAJuApYGFmdvbT/jbg/2fmij7W5UD7kiTtKSLIzEHPiAw4cs/M nRGxFHgYGAXckpmdEXFhdf2NQ6pWkjSsBhy5N3RHjtwladCGOnL3DFVJKpDhLkkFMtwlqUCGuyQV yHCXpAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEM d0kqkOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCX pAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFaiucI+ItohYExEvRcRlfaw/JyJWR8Sv I+KXETGn8aVKkuoVmTlwg4hRwG+ALwAbgaeBhZnZ2aPNXwEvZubWiGgD2jPzxF7byVr7kiR9UESQ mTHY+9Uzcj8eWJuZr2bmDuBe4IyeDTLzV5m5tbr4JDBlsIVIkhqnnnCfDKzvsbyhelt/zgce3Jui JEl7Z/862tQ9lxIRc4HzgJP6Wt/e3t59vVKpUKlU6t20JH0kdHR00NHRsdfbqWfO/US65tDbqstX ALsy85pe7eYAK4C2zFzbx3acc5ekQRrOOfdVwIyIaI2IA4GzgAd67XwaXcF+bl/BLklqrprTMpm5 MyKWAg8Do4BbMrMzIi6srr8R+AdgAnB9RADsyMzjh69sSdJAak7LNGxHTstI0qAN57SMJOlDxnCX pAIZ7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVCDDXZIKZLhLUoEMd0kq kOEuSQUy3CWpQIa7JBXIcJekAhnuklQgw12SCmS4S1KBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ 7pJUIMNdkgpkuEtSgQx3SSqQ4S5JBTLcJalAhrskFchwl6QCGe6SVKCa4R4RbRGxJiJeiojL+mnz r9X1qyPi6MaXKUkajAHDPSJGAT8E2oDZwMKIOKJXm9OBv8jMGcAFwPXDVGsxOjo6RrqEfYZ9sZt9 sZt9sfdqjdyPB9Zm5quZuQO4FzijV5u/Ae4AyMwngfERManhlRbEJ+5u9sVu9sVu9sXeqxXuk4H1 PZY3VG+r1WbK3pcmSRqqWuGedW4nhng/SdIwiMz+czgiTgTaM7OtunwFsCszr+nR5gagIzPvrS6v AT6fma/32paBL0lDkJm9B9A17V9j/SpgRkS0ApuAs4CFvdo8ACwF7q2+GfxP72AfanGSpKEZMNwz c2dELAUeBkYBt2RmZ0RcWF1/Y2Y+GBGnR8Ra4G3g74a9aknSgAaclpEkfTg1/AxVT3rarVZfRMQ5 1T74dUT8MiLmjESdzVDP86La7riI2BkRC5pZX7PU+fqoRMR/R8TzEdHR5BKbpo7XR0tErIyIZ6t9 sWQEymyKiLg1Il6PiOcGaDO43MzMhl3omrpZC7QCBwDPAkf0anM68GD1+gnAE42sYV+51NkXfwUc Ur3e9lHuix7tHgN+AnxlpOseoefEeOAFYEp1uWWk6x7BvmgH/vn9fgD+COw/0rUPU3+cDBwNPNfP +kHnZqNH7p70tFvNvsjMX2Xm1urik5R7fkA9zwuAi4D7gTeaWVwT1dMPZwP/npkbADLzD02usVnq 6YvNwLjq9XHAHzNzZxNrbJrM/C/gzQGaDDo3Gx3unvS0Wz190dP5wIPDWtHIqdkXETGZrhf3+19f UeLBoHqeEzOAiRHxeESsiohFTauuuerpi5uBz0bEJmA18I0m1bYvGnRu1voo5GB50tNudT+miJgL nAecNHzljKh6+uJfgMszMyMi2PM5UoJ6+uEA4BhgHjAG+FVEPJGZLw1rZc1XT19cCTybmZWIOBx4 JCKOzMy3hrm2fdWgcrPR4b4RmNpjeSpd7zADtZlSva009fQF1YOoNwNtmTnQn2UfZvX0xbF0nSsB XfOrfx0ROzLzgeaU2BT19MN64A+ZuR3YHhH/CRwJlBbu9fTF/wH+ESAzX46I3wGz6Dr/5qNm0LnZ 6GmZ7pOeIuJAuk566v3ifABYDN1nwPZ50lMBavZFREwDVgDnZubaEaixWWr2RWZOz8zPZOZn6Jp3 /7+FBTvU9/r4f8DnImJURIyh6+DZi02usxnq6Ys1wBcAqvPLs4BXmlrlvmPQudnQkXt60lO3evoC +AdgAnB9dcS6IzOPH6mah0udfVG8Ol8fayJiJfBrYBdwc2YWF+51Pif+CbgtIlbTNRD9+8zcMmJF D6OIuAf4PNASEeuBZXRN0Q05Nz2JSZIK5M/sSVKBDHdJKpDhLkkFMtwlqUCGuyQVyHCXpAIZ7pJU IMNdkgr0v4W1q8xEcgEdAAAAAElFTkSuQmCC )

椭圆:

In [11]:

from matplotlib.legend_handler import HandlerPatch
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

class HandlerEllipse(HandlerPatch):
    def create_artists(self, legend, orig_handle,
                       xdescent, ydescent, width, height, fontsize, trans):
        center = 0.5 * width - 0.5 * xdescent, 0.5 * height - 0.5 * ydescent
        p = mpatches.Ellipse(xy=center, width=width + xdescent,
                             height=height + ydescent)
        self.update_prop(p, orig_handle, legend)
        p.set_transform(trans)
        return [p]

c = mpatches.Circle((0.5, 0.5), 0.25, facecolor="green",
                    edgecolor="red", linewidth=3)
plt.gca().add_patch(c)

plt.legend([c], ["An ellipse, not a rectangle"],
           handler_map={mpatches.Circle: HandlerEllipse()})

plt.show()

![](data:image/png;base64,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 RMLQ/wcmM4RiyDPR6wAAAABJRU5ErkJggg== )