Location Research Breakthrough Possible @S-Logix pro@slogix.in

How to Plot 3D Bar Charts Using Matplotlib in Python

3D Bar Chart Using Matplotlib in Python

Condition for Plotting 3D Bar Charts Using Matplotlib in Python

  • Description:
    A 3D bar chart is a type of plot that allows you to represent data in three dimensions (X, Y, and Z), where the bar height (Z-axis) varies according to the values of the data, and the bars are plotted along the X and Y axes.
Step-by-Step Process
  • Import Libraries:
    You need to import matplotlib and mpl_toolkits.mplot3d to enable 3D plotting.
  • Prepare Data:
    Create or import data that will be used for plotting the 3D bars.
  • Set Up a 3D Axes:
    Use Axes3D to set up a 3D plotting space.
  • Plot the Bars:
    Use the bar3d() function to plot the 3D bars with the respective coordinates (X, Y, Z).
  • Customize the Plot:
    Add labels, titles, and a legend for better understanding.
Sample Source Code
  • import matplotlib.pyplot as plt

    from mpl_toolkits.mplot3d import Axes3D
    import numpy as np

    products = ['Product A', 'Product B', 'Product C']
    regions = ['North', 'South', 'East', 'West']

    sales = np.random.randint(10, 100, size=(len(products), len(regions)))

    # Create the grid for X, Y coordinates
    x, y = np.meshgrid(range(len(products)), range(len(regions)))

    # Flatten the grid coordinates for use in bar3d
    x = x.flatten()
    y = y.flatten()
    z = np.zeros_like(x)

    # Bar heights are the sales values
    dx = np.ones_like(x)
    dy = np.ones_like(y)
    dz = sales.flatten()

    # Create a 3D figure
    fig = plt.figure()
    ax = fig.add_subplot(111, projection='3d')

    # Plot the bars
    ax.bar3d(x, y, z, dx, dy, dz, shade=True)

    # Set the labels for axes
    ax.set_xlabel('Products')
    ax.set_ylabel('Regions')
    ax.set_zlabel('Sales')

    # Set tick labels for X and Y axes
    ax.set_xticks(range(len(products)))
    ax.set_xticklabels(products)
    ax.set_yticks(range(len(regions)))
    ax.set_yticklabels(regions)

    ax.set_title('3D Bar Chart: Sales of Products in Different Regions')

    plt.show()
Screenshots
  • 3D Bar Chart Output