我真的无法得到这个,我需要在图像上叠加一个椭圆.问题是使用matplotlib.patches绘制椭圆,但最后是白色图形或填充椭圆.代码很原始,我不知道该怎么做,因为我从来没有使用matplotlib库的这一部分.
import matplotlib.pyplot as plt import numpy.random as rnd from matplotlib.patches import Ellipse ells = [Ellipse(xy=[0,0], 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中为参数指定颜色,请使用string '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()