import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import AutoMinorLocator
fig = plt.figure(figsize=(8, 5))
ax = fig.add_subplot(111)
ax.grid(which='major')
ax.grid(which='minor', linewidth=0.4)
ax.set_xlim(-3., 3)
ax.set_ylim(0., 3.)
ax.set_yticks([0, 1, 2, 3])
ax.xaxis.set_minor_locator(AutoMinorLocator(2))
ax.yaxis.set_minor_locator(AutoMinorLocator(2))
ax.set_aspect('equal')
# Softplus.
x = np.linspace(-3., 3., 100)
y = np.log(1. + np.exp(x))
ax.plot(x, y)
# Ramp, for reference.
x1 = np.linspace(-3., 0., 50)
y1 = np.zeros(50)
ax.plot(x1, y1, linestyle=(0, (5, 5)), color='black')
xy = np.linspace(0., 3., 50)
ax.plot(xy, xy, linestyle=(0, (5, 5)), color='black')
cm = 1/2.54
fig.savefig('softplus.svg', bbox_inches='tight')
# Google Colab
from google.colab import files
files.download('softplus.svg')