# How to create a figure with no axes ( frameless ) or labels using matplotlib ?

Published: March 21, 2019

With matplotlib it is possible to create and save a figure with no axes and labels. For example, let's consider the following figure (source)

````#!/usr/bin/env python`
`import numpy as np`
`import matplotlib.cm as cm`
`import matplotlib.mlab as mlab`
`import matplotlib.pyplot as plt`

`delta = 0.025`
`x = y = np.arange(-3.0, 3.0, delta)`
`X, Y = np.meshgrid(x, y)`
`Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)`
`Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)`
`Z = Z2-Z1  # difference of Gaussians`

`im = plt.imshow(Z, interpolation='bilinear', cmap=cm.RdYlGn,`
`                origin='lower', extent=[-3,3,-3,3],`
`                vmax=abs(Z).max(), vmin=-abs(Z).max())`

`plt.show()`
```

After removing the frame:

````#!/usr/bin/env python`
`import numpy as np`
`import matplotlib.cm as cm`
`import matplotlib.mlab as mlab`
`import matplotlib.pyplot as plt`

`my_dpi=100`

`fig = plt.figure(figsize=(800/my_dpi, 800/my_dpi), dpi=my_dpi)`

`ax = plt.Axes(fig, [0., 0., 1., 1.])`
`ax.set_axis_off()`
`fig.add_axes(ax)`

`delta = 0.025`
`x = y = np.arange(-3.0, 3.0, delta)`
`X, Y = np.meshgrid(x, y)`
`Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)`
`Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)`
`Z = Z2-Z1  # difference of Gaussians`

`im = plt.imshow(Z, interpolation='bilinear', cmap=cm.RdYlGn,`
`                origin='lower', extent=[-3,3,-3,3],`
`                vmax=abs(Z).max(), vmin=-abs(Z).max())`

`fig.savefig('MatplotlibImageNoFrame02.png', dpi=my_dpi)`
`plt.show()`
```

Another example:

````#!/usr/bin/env python`
`import numpy as np`
`import matplotlib.cm as cm`
`import matplotlib.mlab as mlab`
`import matplotlib.pyplot as plt`

`my_dpi=100`

`delta = 0.025`
`x = y = np.arange(-3.0, 3.0, delta)`
`X, Y = np.meshgrid(x, y)`
`Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0)`
`Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1)`
`Z = Z2-Z1  # difference of Gaussians`

`Shape = Z.shape`

`fig = plt.figure(figsize=(Shape[1]/my_dpi, Shape[0]/my_dpi), dpi=my_dpi)`

`ax = plt.Axes(fig, [0., 0., 1., 1.])`
`ax.set_axis_off()`
`fig.add_axes(ax)`

`im = plt.imshow(Z, interpolation='bilinear', cmap=cm.RdYlGn,`
`                origin='lower', extent=[-3,3,-3,3],`
`                vmax=abs(Z).max(), vmin=-abs(Z).max())`

`fig.savefig('MatplotlibImageNoFrame02.png', dpi=my_dpi)`
`plt.show()`
```

Image

of