# Plotting data using log axis

# Plotting in log axis with matplotlib

    import matplotlib.pyplot as plt
    %matplotlib inline

    import numpy as np

    x = np.linspace(0.1, 20)
    y = 20*np.exp(-x/10.0)

## Plotting using the standard function then specifying the axis scale

One of the easiest way to plot in a log plot is to specify the plot normally and then specify which axis is to be plotted with a log scale.

This can be specified by the function set_xscale or set_yscale

    # Normal plot
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)

    ax.plot(x, y)

    ax.grid()

    plt.show()

    # Log x axis plot
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)

    ax.plot(x, y)

    ax.set_xscale('log')
    ax.grid()

    plt.show()

    # Log x axis plot
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)

    ax.plot(x, y)

    ax.set_yscale('log')
    ax.grid()

    plt.show()

    # Log x axis plot
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)

    ax.plot(x, y)

    ax.set_xscale('log')
    ax.set_yscale('log')
    ax.grid()

    plt.show()

## Plotting using the matplotlib defined function

Matplotlib has the function : semilogx, semilogy and loglog that can help you avoid having to specify the axis scale.

    # Plot using semilogx
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)

    ax.semilogx(x, y)

    ax.grid()
    plt.show()

    # Plot using semilogy
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)

    ax.semilogy(x, y)

    ax.grid()
    plt.show()

    # Plot using loglog
    fig = plt.figure()
    ax = fig.add_subplot(1, 1, 1)

    ax.loglog(x, y)

    ax.grid()
    plt.show()

### Find an error or bug? Have a suggestion?

Everything on this site is avaliable on GitHub. Head on over and submit an issue. You can also message me directly by email.