Files
scripts/python/population_plot.py
Dobromir Popov 201512ef3a fix range and
2023-12-16 22:35:28 +00:00

40 lines
1.4 KiB
Python

import matplotlib.pyplot as plt
import numpy as np
# Initial population at year 0
initial_population = 1_000_000
death_rate = 0.10
# Start and stop years for the graph
start_year = 4000
stop_year = 10000
interval = 500 # Interval for plotting data points
# Initialize population calculations
current_population = initial_population
population_values = [initial_population] # Include initial population as the first data point
years = np.arange(0, stop_year + 1, 100) # Calculate every 100 years
# Apply the death rate for each 100-year period
for year in years[1:]:
current_population -= death_rate * current_population
population_values.append(current_population)
# Filter the years and population values for the graph
graph_years = np.arange(start_year, stop_year + 1, interval)
graph_population_values = [population for year, population in zip(years, population_values) if year >= start_year and year in graph_years]
# Create the graph with labels for each data point
plt.figure(figsize=(8, 6))
plt.plot(graph_years, graph_population_values, marker='o', linestyle='-', color='b')
plt.xlabel('Years')
plt.ylabel('Population')
plt.title(f'Population Projection from Year {start_year} to {stop_year}')
# Adding labels to the data points
for i, txt in enumerate(graph_population_values):
plt.annotate(f"{int(txt):,}", (graph_years[i], graph_population_values[i]), textcoords="offset points", xytext=(0,10), ha='center')
plt.grid(True)
plt.show()