Sunday 5 May 2024

Donut Charts using Python

 


Code:

import matplotlib.pyplot as plt

# Data to plot
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]

# Plot
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)

# Draw a circle at the center of pie to make it look like a donut
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)

# Equal aspect ratio ensures that pie is drawn as a circle
plt.axis('equal')

plt.title('Basic Donut Chart')
plt.show()

#clcoding.com

Explanation:


In this code snippet, we're using the matplotlib.pyplot module, which is a powerful library in Python for creating static, animated, and interactive visualizations. We're importing it using the alias plt, which is a common convention for brevity.

Here's a breakdown of the code:

Importing matplotlib.pyplot: import matplotlib.pyplot as plt
This line imports the matplotlib.pyplot module and assigns it the alias plt, allowing us to reference it with the shorter name plt throughout the code.

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
These lines define the data we want to visualize. labels contains the labels for each segment of the pie chart, and sizes contains the corresponding sizes or values for each segment.
Plotting the pie chart:

plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
Here, we use the plt.pie() function to create a pie chart. We pass sizes as the data to plot, labels to label each segment, autopct='%1.1f%%' to display the percentage for each segment, and startangle=140 to rotate the pie chart to start from the angle 140 degrees.
Drawing a circle to create a donut effect:

centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
These lines draw a white circle at the center of the pie chart, creating a donut-like appearance. The plt.Circle() function creates a circle with the specified parameters: center (0,0) and radius 0.70.
Setting equal aspect ratio:

plt.axis('equal')
This line ensures that the plot is displayed with equal aspect ratio, so the pie chart appears as a circle rather than an ellipse.
Adding a title and displaying the plot:

plt.title('Basic Donut Chart')
plt.show()
Here, we set the title of the plot to 'Basic Donut Chart' using plt.title(), and then plt.show() displays the plot on the screen.
This code generates a basic donut chart with four segments labeled A, B, C, and D, where the size of each segment is determined by the values in the sizes list.



Code:

import matplotlib.pyplot as plt

# Data to plot
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # only "explode" the 2nd slice

# Plot
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', startangle=140)

# Draw a circle at the center of pie to make it look like a donut
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)

# Equal aspect ratio ensures that pie is drawn as a circle
plt.axis('equal')

plt.title('Donut Chart with Exploded Slices')
plt.show()

#clcoding.com

Explanation: 

This code snippet is similar to the previous one, but it adds exploding effect to one of the slices in the pie chart. Let's break down the code:

Importing matplotlib.pyplot:

import matplotlib.pyplot as plt
This line imports the matplotlib.pyplot module and assigns it the alias plt, allowing us to reference it with the shorter name plt throughout the code.
Data to plot:

labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # only "explode" the 2nd slice
Here, labels contains the labels for each segment of the pie chart, sizes contains the corresponding sizes or values for each segment, and explode contains the magnitude of the explosion for each slice. In this case, we're exploding the second slice ('B') by 0.1.
Plotting the pie chart:

plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', startangle=140)
This line creates a pie chart using plt.pie(). The explode parameter is used to specify the amount by which to explode each slice. Here, we're exploding only the second slice ('B') by 0.1. Other parameters are similar to the previous example.
Drawing a circle to create a donut effect:

centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
This part is the same as before. It draws a white circle at the center of the pie chart, creating a donut-like appearance.
Setting equal aspect ratio:

plt.axis('equal')
This line ensures that the plot is displayed with an equal aspect ratio, so the pie chart appears as a circle.
Adding a title and displaying the plot:

plt.title('Donut Chart with Exploded Slices')
plt.show()
Here, we set the title of the plot to 'Donut Chart with Exploded Slices' and then display the plot.
This code generates a donut chart with four segments labeled A, B, C, and D, where the second slice ('B') is exploded outwards. The size of each segment is determined by the values in the sizes list.




Code:

import matplotlib.pyplot as plt

# Data to plot
labels = ['A', 'B', 'C', 'D']
sizes1 = [25, 30, 35, 10]
sizes2 = [20, 40, 20, 20]

# Plot
fig, ax = plt.subplots()
ax.pie(sizes1, radius=1.2, labels=labels, autopct='%1.1f%%', startangle=140)
ax.pie(sizes2, radius=1, startangle=140, colors=['red', 'green', 'blue', 'yellow'])

# Draw a circle at the center of pie to make it look like a donut
centre_circle = plt.Circle((0,0),0.8,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)

# Equal aspect ratio ensures that pie is drawn as a circle
ax.set(aspect="equal")
plt.title('Donut Chart with Multiple Rings')
plt.show()

#clcoding.com

Explanation: 

This code snippet creates a donut chart with multiple rings, demonstrating the capability to display more than one dataset in the same chart. Let's dissect the code:

Importing matplotlib.pyplot:

import matplotlib.pyplot as plt
This line imports the matplotlib.pyplot module and assigns it the alias plt.
Data to plot:

labels = ['A', 'B', 'C', 'D']
sizes1 = [25, 30, 35, 10]
sizes2 = [20, 40, 20, 20]
Two sets of data are defined here: sizes1 and sizes2. Each set represents the values for different rings of the donut chart.
Plotting the donut chart:

fig, ax = plt.subplots()
ax.pie(sizes1, radius=1.2, labels=labels, autopct='%1.1f%%', startangle=140)
ax.pie(sizes2, radius=1, startangle=140, colors=['red', 'green', 'blue', 'yellow'])
This code creates a subplot (fig, ax = plt.subplots()) and then plots two pie charts on the same subplot using ax.pie().
The first ax.pie() call plots the outer ring (sizes1) with a larger radius (radius=1.2), while the second call plots the inner ring (sizes2) with a smaller radius (radius=1).
labels, autopct, and startangle parameters are used to configure the appearance of the pie charts.
Different colors are specified for the inner ring using the colors parameter.
Drawing a circle to create a donut effect:

centre_circle = plt.Circle((0,0),0.8,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
This part is similar to previous examples. It draws a white circle at the center of the pie chart to create the donut-like appearance.
Setting equal aspect ratio:

ax.set(aspect="equal")
This line sets the aspect ratio of the subplot to 'equal', ensuring that the pie charts are displayed as circles.
Adding a title and displaying the plot:

plt.title('Donut Chart with Multiple Rings')
plt.show()
Finally, the title of the plot is set to 'Donut Chart with Multiple Rings', and the plot is displayed.
This code generates a donut chart with two rings, each representing different datasets (sizes1 and sizes2). Each ring has its own set of labels and colors, and they are displayed concentrically to create the donut chart effect.


0 Comments:

Post a Comment

Popular Posts

Categories

AI (27) Android (24) AngularJS (1) Assembly Language (2) aws (17) Azure (7) BI (10) book (4) Books (118) C (77) C# (12) C++ (82) Course (62) Coursera (180) Cybersecurity (22) data management (11) Data Science (95) Data Strucures (6) Deep Learning (9) Django (6) Downloads (3) edx (2) Engineering (14) Excel (13) Factorial (1) Finance (6) flutter (1) FPL (17) Google (19) Hadoop (3) HTML&CSS (46) IBM (25) IoT (1) IS (25) Java (92) Leet Code (4) Machine Learning (44) Meta (18) MICHIGAN (5) microsoft (4) Pandas (3) PHP (20) Projects (29) Python (753) Python Coding Challenge (230) Questions (2) R (70) React (6) Scripting (1) security (3) Selenium Webdriver (2) Software (17) SQL (40) UX Research (1) web application (8)

Followers

Person climbing a staircase. Learn Data Science from Scratch: online program with 21 courses