matplotlib color gradient in patches?

后端 未结 2 1336
后悔当初
后悔当初 2020-11-28 14:26

I\'d like to create ellipses in matplotlib with a fill color that has an alpha (opacity) value that depends on the radius;

e.g., a 2D Gaussian.

2条回答
  •  孤独总比滥情好
    2020-11-28 15:00

    Here is function example using the idea from Alex's post

    import matplotlib.pyplot as plt,numpy as np
    
    def gauplot(centers, radiuses, xr=None, yr=None):
            nx, ny = 1000.,1000.
            xgrid, ygrid = np.mgrid[xr[0]:xr[1]:(xr[1]-xr[0])/nx,yr[0]:yr[1]:(yr[1]-yr[0])/ny]
            im = xgrid*0 + np.nan
            xs = np.array([np.nan])
            ys = np.array([np.nan])
            fis = np.concatenate((np.linspace(-np.pi,np.pi,100), [np.nan]) )
            cmap = plt.cm.gray
            cmap.set_bad('white')
            thresh = 3
            for curcen,currad in zip(centers,radiuses):
                    curim=(((xgrid-curcen[0])**2+(ygrid-curcen[1])**2)**.5)/currad*thresh
                    im[curim

    And here is what you get when you run

        gauplot([(0,0), (2,3), (5,1), (6, 7), (6.1, 6.1)], [.3,. 4, .5, 1, .4], [-1,10], [-1,10])
                 #           centers of circles           # radii of circles#
    

    plot

提交回复
热议问题