没有 fillcolor 无法在 python 中绘制椭圆
Can't plot ellipse in python without fillcolor
我真的搞不懂,我需要在图像上叠加一个椭圆。问题是用 matplotlib.patches 绘制椭圆,但以白色图形或填充椭圆结束。代码非常原始,我不确定该怎么做,因为我从未使用过 matplotlib 库的这一部分。
import matplotlib.pyplot as plt
import numpy.random as rnd
from matplotlib.patches import Ellipse
ells = [Ellipse(xy=[0,0], width=30, height=10, angle=0,edgecolor='b', lw=4)]
fig = plt.figure(0)
ax = fig.add_subplot(111, aspect='equal')
for e in ells:
ax.add_artist(e)
e.set_alpha(1)
e.set_facecolor(none) #obvious mistake, but no idea what to do
ax.set_xlim(-100, 100)
ax.set_ylim(-100, 100)
plt.show()
我尝试查找 matplotlib.patches 页面,但没有关于如何绘制椭圆的明确信息,只有正在使用的函数。
非常感谢您的帮助。
感谢您的宝贵时间。
通常,要在 matplotlib 中为参数指定无颜色,请使用字符串 'none'
。这同样适用于边缘颜色、面部颜色等。
你的情况:
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
fig, ax = plt.subplots()
ax.axis('equal')
ell = Ellipse(xy=[0,0], width=30, height=10, angle=0,
edgecolor='b', lw=4, facecolor='none')
ax.add_artist(ell)
ax.set(xlim=[-100, 100], ylim=[-100, 100])
plt.show()
对于具体的填充,您也可以使用 fill=False
,正如@M4rtini 在评论中指出的那样。在 matplotlib 中,使用 set(foo=bar)
或 set_foo(bar)
方法通常与传入 kwarg foo=bar
相同。例如:
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
fig, ax = plt.subplots()
ax.axis('equal')
ell = Ellipse(xy=[0,0], width=30, height=10, angle=0,
edgecolor='b', lw=4, fill=False)
ax.add_artist(ell)
ax.set(xlim=[-100, 100], ylim=[-100, 100])
plt.show()
我真的搞不懂,我需要在图像上叠加一个椭圆。问题是用 matplotlib.patches 绘制椭圆,但以白色图形或填充椭圆结束。代码非常原始,我不确定该怎么做,因为我从未使用过 matplotlib 库的这一部分。
import matplotlib.pyplot as plt
import numpy.random as rnd
from matplotlib.patches import Ellipse
ells = [Ellipse(xy=[0,0], width=30, height=10, angle=0,edgecolor='b', lw=4)]
fig = plt.figure(0)
ax = fig.add_subplot(111, aspect='equal')
for e in ells:
ax.add_artist(e)
e.set_alpha(1)
e.set_facecolor(none) #obvious mistake, but no idea what to do
ax.set_xlim(-100, 100)
ax.set_ylim(-100, 100)
plt.show()
我尝试查找 matplotlib.patches 页面,但没有关于如何绘制椭圆的明确信息,只有正在使用的函数。
非常感谢您的帮助。
感谢您的宝贵时间。
通常,要在 matplotlib 中为参数指定无颜色,请使用字符串 'none'
。这同样适用于边缘颜色、面部颜色等。
你的情况:
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
fig, ax = plt.subplots()
ax.axis('equal')
ell = Ellipse(xy=[0,0], width=30, height=10, angle=0,
edgecolor='b', lw=4, facecolor='none')
ax.add_artist(ell)
ax.set(xlim=[-100, 100], ylim=[-100, 100])
plt.show()
对于具体的填充,您也可以使用 fill=False
,正如@M4rtini 在评论中指出的那样。在 matplotlib 中,使用 set(foo=bar)
或 set_foo(bar)
方法通常与传入 kwarg foo=bar
相同。例如:
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
fig, ax = plt.subplots()
ax.axis('equal')
ell = Ellipse(xy=[0,0], width=30, height=10, angle=0,
edgecolor='b', lw=4, fill=False)
ax.add_artist(ell)
ax.set(xlim=[-100, 100], ylim=[-100, 100])
plt.show()