Data visualization plays a crucial role in understanding and interpreting complex datasets. Python, with its powerful libraries, provides an excellent environment for data analytics and visualization. One such library, Matplotlib, is a go-to tool for creating a wide variety of charts and plots. In this tutorial, we will explore the fundamentals of Matplotlib and learn how to create and customize different types of charts for effective data analysis.
Table of Contents
ToggleMatplotlib is a versatile and widely-used plotting library in the Python ecosystem. Whether you’re a data scientist, analyst, or enthusiast, mastering Matplotlib empowers you to communicate insights visually. From simple line plots to sophisticated 3D visualizations, Matplotlib has you covered.
import matplotlib.pyplot as plt # Sample data x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] # Basic Line Plot plt.plot(x, y, label='Line 1') # Customize the plot plt.title('Basic Line Plot') plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.legend() # Show the plot plt.show()
import matplotlib.pyplot as plt # Sample data x = [1, 2, 3, 4, 5] y1 = [2, 4, 6, 8, 10] y2 = [1, 2, 1, 2, 1] # Multiple Lines on One Plot plt.plot(x, y1, label='Line 1') plt.plot(x, y2, label='Line 2') # Customize the plot plt.title('Multiple Lines on One Plot') plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.legend() # Show the plot plt.show()
import matplotlib.pyplot as plt # Sample data x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] # Line Style and Color plt.plot(x, y, linestyle='--', color='red', marker='o', label='Dashed Line') # Customize the plot plt.title('Line Style and Color') plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.legend() # Show the plot plt.show()
plt.plot(x, y, linestyle='-', label='Solid Line')Dashed Line:
plt.plot(x, y, linestyle='--', label='Dashed Line')Dotted Line:
plt.plot(x, y, linestyle=':', label='Dotted Line')Dash-Dot Line:
plt.plot(x, y, linestyle='-.', label='Dash-Dot Line')Line Colors:
plt.plot(x, y, color='red', label='Red Line')Markers Markers indicate specific data points on the line. You can use various markers:
plt.plot(x, y, marker='o', label='Circle Marker')
plt.plot(x, y, marker='s', label='Square Marker')
plt.plot(x, y, marker='^', label='Triangle Up Marker')
import matplotlib.pyplot as plt # Sample data categories = ['Category A', 'Category B', 'Category C', 'Category D'] values = [30, 50, 20, 40] # Basic Bar Chart plt.bar(categories, values, color='blue') # Customize the plot plt.title('Basic Bar Chart') plt.xlabel('Categories') plt.ylabel('Values') # Show the plot plt.show()
import matplotlib.pyplot as plt # Sample data categories = ['Category A', 'Category B', 'Category C', 'Category D'] values1 = [30, 50, 20, 40] values2 = [10, 20, 30, 40] # Stacked Bar Chart plt.bar(categories, values1, color='blue', label='Group 1') plt.bar(categories, values2, bottom=values1, color='orange', label='Group 2') # Customize the plot plt.title('Stacked Bar Chart') plt.xlabel('Categories') plt.ylabel('Values') plt.legend() # Show the plot plt.show()
import numpy as np import matplotlib.pyplot as plt # Sample data categories = ['Category A', 'Category B', 'Category C', 'Category D'] values1 = [30, 50, 20, 40] values2 = [10, 20, 30, 40] # Grouped Bar Chart bar_width = 0.35 # Width of each bar index = np.arange(len(categories)) # Generating an array of evenly spaced values representing the categories # Creating the first set of bars (Group 1) plt.bar(index, values1, width=bar_width, color='blue', label='Group 1') # Creating the second set of bars (Group 2), shifted to the right by bar_width plt.bar(index + bar_width, values2, width=bar_width, color='orange', label='Group 2') # Customize the plot plt.title('Grouped Bar Chart') plt.xlabel('Categories') plt.ylabel('Values') plt.xticks(index + bar_width / 2, categories) # Setting the x-axis ticks at the center of each group plt.legend() # Displaying the legend # Show the plot plt.show()
plt.bar(index, values1, width=bar_width, color=’blue’, label=’Group 1′): Creates the first set of bars (Group 1).
plt.bar(index + bar_width, values2, width=bar_width, color=’orange’, label=’Group 2′): Creates the second set of bars (Group 2), shifted to the right by bar_width
import matplotlib.pyplot as plt # Sample data x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] # Scatter Plot plt.scatter(x, y, color='red', marker='o', label='Data Points') # Customize the plot plt.title('Scatter Plot: Unveiling Relationships') plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.legend() # Show the plot plt.show()
import matplotlib.pyplot as plt # Sample data x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] data_labels = ['Point 1', 'Point 2', 'Point 3', 'Point 4', 'Point 5'] # Scatter Plot with Text Annotations plt.scatter(x, y, color='purple', marker='o', label='Data Points') # Adding text annotations for i, label in enumerate(data_labels): plt.annotate(label, (x[i], y[i]), textcoords="offset points", xytext=(0,5), ha='center') # Customize the plot plt.title('Scatter Plot with Text Annotations') plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.legend() # Show the plot plt.show()
import matplotlib.pyplot as plt import numpy as np # Sample data data = [2, 5, 7, 10, 5, 8, 3, 7, 6, 9, 11, 5, 7] # Create histogram plt.hist(data, bins=10, edgecolor='black', color='skyblue') # Customize the plot plt.title('Histogram Example') plt.xlabel('Values') plt.ylabel('Frequency') # Show the plot plt.show()
import matplotlib.pyplot as plt import numpy as np # Sample data data1 = np.random.randn(1000) data2 = np.random.randn(1000) + 2 # Shift the second dataset # Create multiple histograms plt.hist(data1, bins=30, edgecolor='black', color='skyblue', alpha=0.7, label='Dataset 1') plt.hist(data2, bins=30, edgecolor='black', color='orange', alpha=0.7, label='Dataset 2') # Customize the plot plt.title('Multiple Histograms Example') plt.xlabel('Values') plt.ylabel('Frequency') plt.legend() # Show the plot plt.show()
import matplotlib.pyplot as plt # Sample data labels = ['Category A', 'Category B', 'Category C', 'Category D'] sizes = [30, 20, 15, 35] # Create a pie chart plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, colors=['skyblue', 'orange', 'lightgreen', 'lightcoral']) # Customize the plot plt.title('Pie Chart Example') # Show the plot plt.show()
import matplotlib.pyplot as plt # Dataset scores = [78, 82, 85, 90, 91, 93, 95, 97, 100, 102, 105, 108] # Creating the box plot plt.boxplot(scores) plt.title(‘Test Scores Box Plot’) plt.ylabel(‘Scores’) # Display the plot plt.show()