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

Office Address

Social List

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