import matplotlib.pyplot as plt
import networkx as nx
# Create the spider diagram as a network
G = nx.Graph()
# Central topic
G.add_node("Learner's License Prep")
# Main categories
categories = ["Road Signs", "Rules of the Road", "Speed Limits", "Vehicle Controls", "Observational Checks"]
# Road Signs subcategories
road_signs = ["Regulatory Signs", "Warning Signs", "Guidance Signs"]
# Rules of the Road subcategories
rules_of_road = ["Right of Way", "Traffic Lights", "4-way Stops", "Roundabouts"]
# Speed Limits subcategories
speed_limits = ["Urban Areas", "Rural Areas", "Highways"]
# Vehicle Controls subcategories
vehicle_controls = ["Mirrors", "Indicators", "Hand Signals", "Blind Spot Checks"]
# Observational Checks subcategories
observational_checks = ["Pre-trip Checks", "On-the-road Observations"]
# Adding main categories to the central topic
for category in categories:
G.add_edge("Learner's License Prep", category)
# Adding subcategories for Road Signs
for sign in road_signs:
G.add_edge("Road Signs", sign)
# Adding subcategories for Rules of the Road
for rule in rules_of_road:
G.add_edge("Rules of the Road", rule)
# Adding subcategories for Speed Limits
for limit in speed_limits:
G.add_edge("Speed Limits", limit)
# Adding subcategories for Vehicle Controls
for control in vehicle_controls:
G.add_edge("Vehicle Controls", control)
# Adding subcategories for Observational Checks
for check in observational_checks:
G.add_edge("Observational Checks", check)
# Plotting the spider diagram
plt.figure(figsize=(10, 10))
pos = nx.spring_layout(G, seed=42) # Positioning the nodes
nx.draw(G, pos, with_labels=True, node_color='skyblue', node_size=3000, font_size=10, font_weight='bold', edge_color='gray')
plt.title("Learner's License Study Plan", size=15)
plt.show()
