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

1475 lines
96 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 标签
In [1]:
```py
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相当于
```py
handles, labels = ax.get_legend_handles_labels()
ax.legend(handles, labels)
```
我们可以在函数中指定 `handles` 的参数:
In [2]:
```py
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]:
```py
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
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
)
## 产生特殊形状的 marker key
有时我们可以产生一些特殊形状的 marker
块状:
In [4]:
```py
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]:
```py
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]:
```py
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]:
```py
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]:
```py
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]:
```py
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
4udaea6lhTsXLuSO/fv7bRboAeonT2bhhg1MSWhyyUcdI0kuc90o0YtIWhITzTO7d/PY/Pnc3NGR
tLwDt5SVMXPz5pQJOh91jBS5JHq10YtIVqbU1DBtzRpuqqqiLeFYG7C0qoradev6TdD5qEMGpjt6
EUlLqjvK7u5umhoa6Ni9m1HHjnGipITymhrqrr+e0aNHp1V3PuoodGq6EZFBlyrRyNBQ042IiKSk
RC8iUuA0MlZEsha/DOCMuXP7mhd2bNuW1VKC2dYh/VMbvYikJbGN+LmWFhrr6qg/cICJEB3a9LfC
HATuqKxkUVMTl1ZXJ60zH3WMFHoYKyKDLnHA1IaFC2mIH+yUkKRh4AFTudYxkuhhrIgMma6uLhrr
6k5N0CkUAXfs389PrruOJ7dvz2sdqUQiEc477zz++te/nrK/oqKCHTt29L1vb2+nqKiInp6eAetM
5u6776aoqIgtW7ZkdX5zczNFRUWMHTuWsWPHMnHiRFasWJFVXQPJOdGb2V1mdtjM9vVT5j/M7AUz
22tmH831miISnK2rV1N/4EDayaMIWNbZyUNLl9Ld3Z23OpJpb2/n6aef5j3veQ8PPvjgKcdS3RH3
15LQ3yRlGzdu5LLLLhtwLvqKigo6Uoz8vfjiizl69ChHjx7ll7/8JT/4wQ944IEH+q0vG/m4o28E
ZqY6aGazgEnufgnweWBtHq4pIgE51NISbU/P0OLWVpoaGvJWRzKbNm3iqquu4rOf/ewpc9F/9rOf
paOjgzlz5jB27Fhuu+02rrzySgDOPfdcxo0bx1NPPcXdd9/NtGnTuOGGGygtLWXlypVJr/OnP/2J
Xbt20djYyOOPP87hw4dTxpTuIisVFRXU1NTQ2tqaVvlM5Jzo3f0XwBv9FLkG2Bgr+2vgXDO7MNfr
ikgwZsydm3yOyXhJjk9yZ1JFRd7qSGY4LyX4wgsvsGvXrr448mko2ugvBjrj3h+ErH6Zi0gI5LIM
YNHx43mrI1GYlxJMda1Dhw4xfvx4zjnnHCorK5k6dSrTpk3rt65sDNXD2MSvqrrXiAxTufSO6yku
zlsdicKylGBHRwfjx4/v2zo6OvjIRz7S937z5s19dU2YMIE33niDt956izfffJOzzjqLhQsXZhzz
QIZiwNTLQPwnNzG27zTxT5wjkQiRSGQw4xKRLOzYto2Pf+5zpx9I0jUyXhvQtmoVM/JUR7wwLSVY
Xl7OG2/8rTX7/e9/P0888QTl5eX91jtu3Djmz5/Pdddd12+55uZmmpub+y1zmoFWJklnAyqAfSmO
zQIeib2eCjyVolzqpVVEJHC9P6Nrli/3zmQt6KcWPmXrAb+pqsq7u7vzVke8e+65x8877zzv7Oz0
w4cP++HDh/2VV17x6dOn+4033uju7lOnTvUNGzb0ndPd3e1nnHGG/+EPf+jb19jY6LW1tSk/g3fe
ecfPOeccv+uuu/quc/jwYf/+97/vF1544WkrT7m7V1RU+J/+9KfT9u/cudMnTpzY9/7o0aO+YMEC
nzp1atJrp8qRpLHCVD6S/L3AIeCvRNviPwcsBhbHlVlN9JfxXmBKinpSfLQiEga9P6MplwE8tXDf
ltFSghnUES/MSwmmSvTNzc1eVFTkY8aM8TFjxvj555/vV199tb/44otJr51LotfIWBFJy4BLCSZp
dsl4KcEM6xhJNAWCiAy6AZcSTEjSWS0lmEUdI4WmQBCRIaelBIcP3dGLSFoGWkpwUkUFRceP01Nc
TFt7e1ZLCeZSR6FT042IDDotJRgsNd2IiEhKSvQiIgVOSwmKSNpymaNGgqNELyJpUfv88KWmGxGR
AqdELyJS4JToRUQKnBK9iEiBU6IXESlwSvQiIgVOiV5EpMAp0YuIFDglehGRAqdELyJS4JToRUQK
nBK9iEiBU6IXESlwSvQiIgVOiV5EpMAp0YuIFDglehGRAqdELyJS4JToRUQKnBK9iEiBU6IXESlw
OSd6M5tpZs+b2Qtm9uUkxyNm9paZPRvbvpbrNUVEJH2jcjnZzM4AVgNXAS8DvzGzB929NaHoE+5+
TS7XEhGR7OR6R/8xoM3d2939OLAZ+Ock5SzH64iISJZyTfQXA51x7w/G9sVzoMbM9prZI2b24Ryv
KSIiGcip6YZoEh/IM0CZux8zs08C9wMfTFZwxYoVfa8jkQiRSCTH8ERECktzczPNzc0ZnWPu6eTq
FCebTQVWuPvM2PubgR53/1Y/57wEVLv76wn7PZdYRERGIjPD3fttHs+16WYPcImZVZjZmcC1wIMJ
QVxoZhZ7/TGiv1xeP70qEREZDDk13bj7CTNbAjwGnAH8wN1bzWxx7Ph64NPAfzOzE8Ax4LocYxYR
kQzk1HSTT2q6ERHJ3FA03YiISMgp0YuIFDglehGRAqdELyJS4JToRUQKnBK9iEiBU6IXESlwuc51
I4Osq6uLratXc6ilhRlz5/b2mWXHtm1MqK5m3pIllJaWBh2miISYBkyF2HMtLTTW1VF/4AATAeI/
HzMOAndUVrKoqYlLq6sDilJEgpTOgCkl+pB6rqWFDQsX0rB//9/a1xISPUAPUD95Mgs3bGBKTc1Q
hykiAVOiH6a6urq4pbaW2w4cOPUhSpJED9Fkf2tZGbVr1zJ99uyhClNEQkBTIAxTW1evpj4xyfej
CFjW2clDS5fS3d09mKGJyDCkRB9Ch1paom3yGVrc2kpTQ0Pe4xGR4U2JPoRmzJ0bbaZJ3OIlOT7J
nUkVFYHELCLhpUQfQmbZr6VedPx4HiMRkUKgRB9CuTyU7ikuzmMkIlIIlOhDaMe2bdFeNYlbvCTH
28xoa28PJGYRCS8l+hCaUF3NwQzPcWB9VRUL6usHIyQRGcaU6ENo3pIl3FFZSU+a5XuAW8rKmHP7
7ZSUlAxmaCIyDCnRh1BpaSmLmpqonzx5wGTfOzJ25ubNTJ81ayjCE5FhRiNjQ+yZ3bt5bP58bu7o
iO5IGBnrRO/kZ27erOkPREYojYwd5qbU1DBtzRpuqqqiLeFYG7C0qoradeuU5EWkX7qjHwa6u7tp
amhgUkUFRceP01NcTFt7O3XXX8/o0aODDk9EAqRJzURECpyabkRERIleRKTQKdGLiBQ4JXoRkQKX
c6I3s5lm9ryZvWBmX05R5j9ix/ea2UdzvaaIiKRvVC4nm9kZwGrgKuBl4Ddm9qC7t8aVmQVMcvdL
zOwfgLXA1FyuK5JMV1cXW1ev5lBLCzPmzu3tjcCObduYUF3NvCVLKC0tDTpMkSGXU/dKM/tHYLm7
z4y9/wqAu98aV2YdsNPd74u9fx640t0PJ9Sl7pWStedaWmisq6P+wIHo6lwJo4gPAndUVrKoqYlL
q6sDilIk/4aie+XFQGfc+4OxfQOVyWalPJGknmtpYcPChdzWm+STmAjcduAAdy5cyDO7dw9leCKB
y6nphujsuOlI/G2T9LwVK1b0vY5EIkQikayCkpGjq6uLxro6GtJYTL0IuGP/fm697jreXruW6bNn
D0WIInnV3NxMc3NzRufk2nQzFVgR13RzM9Dj7t+KK7MOaHb3zbH3arqRvFm7YgVzVq48/U4+oekm
0dKqKlb85jeaQkKGvaFoutkDXGJmFWZ2JnAt8GBCmQeBf4kFNBV4MzHJi2TrUEtLVu2Ai1tbaWpo
yHs8ImGUU6J39xPAEuAx4PfAfe7eamaLzWxxrMwjwB/NrA1YD/xbjjGL9Jkxd2707j1xi5fk+CR3
JlVUBBKzyFDLtY0ed38UeDRh3/qE90tyvY5IMpakWSZdRceP5zESkfAK1cjYnY2NfH3OHNauWEFX
V1fQ4cgwkMtznZ7i4jxGIhJeoUr0H1+0iP/58MPMWbmSW2prea6lJeiQJOR2bNsWfdiauMVLcrzN
jLb29kBiFhlqoUr0vdTnWdI1obqagxme48D6qioW1NcPRkgioRPKRA9/6/P8k+uu48nt24MOR0Jq
3pIl3FFZOeAi6r16iK6zO+f22ykpKRnM0ERCI7SJHqLBLevs5KGlS+nu7g46HAmh0tJSFjU1UT95
8oDJvgeonzyZmZs3M33WrKEITyQUQp3oe6nPs/Tn0upqFm7YwLfKy1OWceDWsjIWbtigxdRlxAlf
olefZ8nClJoapq1Zw01VVbQlHGsjOhK2dt06JXkZkYbN4uDNd99N5F//degCkmGpu7ubpoYGJlVU
UHT8OD3FxbS1t1N3/fWa7iAmfjrnoiNH+qZz7hk3TtM5D0PpTIEwbBL9jqYmZtTVDWFEIoXntOmc
E2g65+FnKOa6yT/1eRYZFJrOeeQK3x19wmAXB/57VRUr9+xRdziRLHV1dXFLbS23pTGdM0R7KN1a
VkatpnMOveF5Rx9HfZ5F8mPr6tXUp5nkQV2bC01oE736PIvkj6ZzHtlCmejV51kkv4qOHMnqvElA
h9rqh73QJXr1eRbJv1ymcx517FgeI5Eg5DwffT7taGqibdUqVqrPs0he5dLp4oSejw17oUr0M+rq
mBF0EDKg+AE3M+bO7Rtws2PbNg24CameceOyOq8NKNdf1sNe+LpXSqidNuAmYRFuDbgJp5SLqPdD
XZuHh2HfvVLCRQNuhi9N5zyyKdFLWrq6umisq6Nh//4Bv2m0lkD4aDrnkU2JXtKiATfDn6ZzHrmU
6CUtGnBTGDSd88ikh7GSlp2NjXx80aKsztXMo+HTO51zx+7djDp2jBMlJZTX1Gg652EonYexoepe
KeGVy4CbouPH8xiJ5MPo0aP5/Fe/GnQYMkTUdCNpyeWvrZ7i4jxGIiKZUqKXtOzYti3pWgGn0FoC
IqGkRC9pmVBdzcEMz3FgfVUVC+rrByMkEUmTEr2kRQNuRIavrBO9mZ1nZo+b2R/M7Kdmdm6Kcu1m
9jsze9bMns4+VAmSBtyIDF9Zd680s28DXe7+bTP7MjDe3b+SpNxLQLW7vz5AfepeOQw8s3s3j82f
z80dHdEdCXPdONE7+ZmbN6svtsgQGOy5bq4BNsZebwT+c3+x5HAdCRENuBEZfnK5o3/D3cfHXhvw
eu/7hHJ/BN4CTgLr3f3OFPXpjn4Y6R1wM6migqLjx+kpLqatvV0DbkSGWM4DpszsceC9SQ6dMtLC
3d3MUmXpae7+ZzO7AHjczJ53918kK7hixYq+15FIhEgk0l94EqBkA260loDI4Gtubqa5uTmjc3K5
o38eiLj7K2Z2EbDT3T80wDnLgbfd/TtJjumOXkQkQ4PdRv8gsDD2eiFwf5IASsxsbOz1aOATwL4c
rikiIhnK5Y7+PGALUA60A59x9zfNbAJwp7vPNrP/BGyLnTIKaHL3W1LUpzt6EZEMpXNHr9krRUSG
MS0lKCIiSvQiIoVOiV5EpMAp0YuIFDglehGRAqdELyJS4JToRUQKnBK9iEiBU6IXESlwSvQiIgVO
iV5EpMAp0YuIFDglehGRAqdELyJS4PpdSnCk6erqYuvq1RxqaWHG3Lm903+yY9s2JlRXM2/JEkpL
S4MOU0QkI5qPPua5lhYa6+qoP3CAiQDxsZhxELijspJFTU1cWl0dUJQiIqfSwiNpeq6lhQ0LF9Kw
f//f2rISEj1AD1A/eTILN2xgSk3NUIcpInIaJfo0dHV1cUttLbcdOHDqA4skiR6iyf7WsjJq165l
+uzZQxWmiEhSWmEqDVtXr6Y+Mcn3owhY1tnJQ0uX0t3dPZihiYjkxYhP9IdaWqJt8hla3NpKU0ND
3uMREcm3EZ/oZ8ydG22mSdziJTk+yZ1JFRWBxCwikokRn+jN+m3a6lfR8eN5jEREZHCM+ESfywPg
nuLiPEYiIjI4Rnyi37FtW7RXTeIWL8nxNjPa2tsDiVlEJBMjPtFPqK7mYIbnOLC+qooF9fWDEZKI
SF6N+EQ/b8kS7qispCfN8j3ALWVlzLn9dkpKSgYzNBGRvBjxib60tJRFTU3UT548YLLvHRk7c/Nm
ps+aNRThiYjkbMSPjO31zO7dPDZ/Pjd3dER3JIyMdaJ38jM3b9b0ByISGoM6MtbM5pnZfjM7aWZT
+ik308yeN7MXzOzL2V5vsE2pqWHamjXcVFVFW8KxNmBpVRW169YpyYvIsJP1Hb2ZfYhoa8Z64EZ3
fyZJmTOAA8BVwMvAb4D57t6apGygd/S9uru7aWpoYFJFBUXHj9NTXExbezt111/P6NGjgw5PREa4
+OnUi44c4X88+eTgT2pmZjtJnej/EVju7jNj778C4O63JikbikQvIhJWp02nDhgMmOgHe+GRi4HO
uPcHgX8Y5GuKiBScvunUM5iEsVe/id7MHgfem+TQMnd/KI36dYsuIpKjrq4uGuvqskryMECid/d/
yjKuXi8DZXHvyyD1+KQVK1b0vY5EIkQikRwvLyIy/MVPp94c2zKRr6abVO1De4BLzKwCOARcC8xP
VUl8ohcRkaj46dQjsa3XyjTOz6V75afMrBOYCmw3s0dj+yeY2XYAdz8BLAEeA34P3Jesx42IiKRW
dORITudnfUfv7j8Gfpxk/yFgdtz7R4FHs72OiMhIl8t06qApEEREQi/XrudK9CIiIdczblxO5yvR
i4iEXDbTqcdTohcRCblMp1NPpEQvIhJymUynnoymKRYRGSZOm06d9Oa6UaIXkcAlzsgYm2OdnnHj
mFBdzbwlSygtLQ06zFB4cvt2Hly6lP/a2soklOhFZBhINiNjvIPAHZWVLGpq4tLq6qEOL5R6p1Pv
2L2bbz7yiBK9iIRX34yM+/f3+8CwdxnPhRs2aPGfBOmsMKVELyKB6Orq4pbaWm5Lc0bGHuDWsjJq
165l+uzZA5YfKQZ1KUERkVzEz8iYjiJgWWcnDy1dSnd392CGVnCU6EUkEPEzMmZicWsrTQ0NeY+n
kCnRi0ggsp2RcRLQsXt3foMpcEr0IhKIXGZkHHXsWB4jKXxK9CISiFw6X5woKcljJIVPiV5EApHt
jIxtQLm6WGZEiV5EApHNjIwOrK+qYkF9/WCEVLCU6EUkEJnOyNgD3FJWxpzbb6dETTcZUaIXkUBk
MiNj78jYmZs3M33WrKEIr6BoZKyIBCrZjIzxnOid/MzNmzX9QRIaGSsioTelpoZpa9ZwU1UVbQnH
2oClVVXUrlunJJ8D3dGLSCjEz8g46tgxTpSUUF5TQ9311zN69OigwwstTWomIlLg1HQjIiJK9CIi
hU6JXkSkwCnRi4gUOCV6EZECl3WiN7N5ZrbfzE6a2ZR+yrWb2e/M7Fkzezrb64mISHZyuaPfB3wK
eHKAcg5E3P2j7v6xHK435Jqbm4MO4TSKKX1hjEsxpUcx5VfWid7dn3f3P6RZPPsVBgIUxi+sYkpf
GONSTOlRTPk1FG30DvzMzPaY2X8ZguuJiEicUf0dNLPHgfcmObTM3R9K8xrT3P3PZnYB8LiZPe/u
v8g0UBERyU7OUyCY2U7gRnd/Jo2yy4G33f07SY5p/gMRkSwMNAVCv3f0GUh6ETMrAc5w96NmNhr4
BLAyWdmBAhURkezk0r3yU2bWCUwFtpvZo7H9E8xse6zYe4FfmNlvgV8DD7v7T3MNWkRE0hea2StF
RGRwBD4y1sxmmtnzZvaCmX056HgAzOwuMztsZvuCjqWXmZWZ2c7YILXnzOyLIYjpLDP7tZn91sx+
b2a3BB1TLzM7IzZIL91OA4MqjAMHzexcM/uRmbXGvn5TQxBTZewz6t3eCsn3+s2xn719ZnaPmf1d
CGL6Uiye58zsS/0WdvfANuAMoovIVADFwG+BqiBjisV1BfBRYF/QscTF9F7g72OvxwAHQvJZlcT+
HQU8BdQGHVMsnhuAJuDBoGOJxfMScF7QcSTEtBH4XNzX75ygY0qIrwj4M1AWcBwVwB+Bv4u9vw9Y
GHBMlxIdtHpWLI8+DnwgVfmg7+g/BrS5e7u7Hwc2A/8ccEx4tPvnG0HHEc/dX3H338Zevw20AhOC
jQrc/Vjs5ZlEv+FeDzAcAMxsIjAL+N+Ea7BeaGIxs3OAK9z9LgB3P+HubwUcVqKrgBfdvTPgOI4A
x4ESMxsFlAAvBxsSHwJ+7e5/cfeTwBPA3FSFg070FwPxX8SDsX3SDzOrIPoXx6+DjQTMrCj2sP0w
sNPdfx90TMAdwFKgJ+hA4oRt4OD7gdfMrNHMnjGzO2O95MLkOuCeoINw99eB7wAdwCHgTXf/WbBR
8RxwhZmdF/u6zQYmpiocdKLXk+AMmdkY4EfAl2J39oFy9x53/3ui32TTzSwSZDxmdjXwqrs/S4ju
oIkOHPwo8EngC2Z2RcDxjAKmAGvcfQrQDXwl2JD+xszOBOYAW0MQyweA64k24UwAxphZXZAxufvz
wLeAnwKPAs/Sz41N0In+ZaAs7n0Z0bt6ScLMioH/C/wfd78/6Hjixf7s3w5cHnAoNcA1ZvYScC8w
w8w2BRwT7v7n2L+vAT8m2mwZpIPAQXf/Tez9j4gm/rD4JNAS+7yCdjmw293/n7ufALYR/T4LlLvf
5e6Xu/uVwJtEn9slFXSi3wNcYmYVsd/g1wIPBhxTKJmZAT8Afu/uDUHHA2BmpWZ2buz12cA/Eb2z
CIy7L3P3Mnd/P9E//Xe4+78EGZOZlZjZ2Njr3oGDgfbocvdXgE4z+2Bs11XA/gBDSjSf6C/qMHge
mGpmZ8cTe0uBAAAA20lEQVR+Dq8CAm+iNLP3xP4tJzqTcMpmrnyNjM2Ku58wsyXAY0Qf5P3A3VuD
jAnAzO4FrgTOjw0K+4a7NwYc1jRgAfA7M+tNpje7+08CjOkiYKOZFRG9afihu/88wHiSCUPz4IXA
j6M5glFAk4dj4OC/A02xm6wXgUUBxwP0/TK8CgjDswzcfW/sr8I9RJtHngE2BBsVAD8ys/OJPij+
N3c/kqqgBkyJiBS4oJtuRERkkCnRi4gUOCV6EZECp0QvIlLglOhFRAqcEr2ISIFTohcRKXBK9CIi
Be7/A4OqIDdoxkFmAAAAAElFTkSuQmCC
)
自定义 `handle`
In [10]:
```py
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
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
IMNdkgr0v4W1q8xEcgEdAAAAAElFTkSuQmCC
)
椭圆:
In [11]:
```py
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==
)