仅在matplotlib中绘制带边框的矩形

Cup*_*tor 26 python matplotlib

所以我在这里找到了以下代码:

from matplotlib import pyplot as plt
from matplotlib.patches import Rectangle
someX, someY = 0.5, 0.5
plt.figure()
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX - .1, someY - .1), 0.2, 0.2,alpha=1))
plt.show()
Run Code Online (Sandbox Code Playgroud)

这使: 在此输入图像描述

但我想要的是一个只有蓝色边框的矩形,里面是透明的.我怎样才能做到这一点?

Pau*_*l H 27

你只需要设置facecolor字符串'none'(不是python None)

from matplotlib import pyplot as plt
from matplotlib.patches import Rectangle
someX, someY = 0.5, 0.5
fig,ax = plt.subplots()
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX - 0.1, someY - 0.1), 0.2, 0.2,
                      alpha=1, facecolor='none'))
Run Code Online (Sandbox Code Playgroud)

  • @Naji NB:`fill`期待一个布尔值; 所以你可以保持`fill = True`并且在你通过不同的颜色循环并且''none'是其中之一的情况下仍然得到一个带有`facecolor ='none'的空心矩形. (4认同)
  • 供参考:[matplotlib.patches.Rectangle API](http://matplotlib.org/api/patches_api.html#matplotlib.patches.Rectangle)。 (2认同)

Cup*_*tor 19

你应该设置fill=None.

from matplotlib import pyplot as plt
from matplotlib.patches import Rectangle

someX, someY = 0.5, 0.5
plt.figure()
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX - .1, someY - .1), 0.2, 0.2, fill=None, alpha=1))
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述