From d684d0a6b52004e2584ca7e04cc4d0343ebd38e1 Mon Sep 17 00:00:00 2001 From: Dobromir Popov Date: Sat, 16 Dec 2023 21:45:17 +0000 Subject: [PATCH] add plot range --- python/population_plot.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/python/population_plot.py b/python/population_plot.py index 17a8719..482514d 100644 --- a/python/population_plot.py +++ b/python/population_plot.py @@ -1,25 +1,35 @@ import matplotlib.pyplot as plt import numpy as np -# Initial population -population = 1_000_000 +# Initial population at year 1 +initial_population = 1_000_000 death_rate = 0.10 -years = np.arange(4000, 10001, 500) # 4000 to 10000 years in 500-year intervals -# Calculate population after each 500-year interval +# Start and stop years for the graph +start_year = 4000 +stop_year = 10000 +interval = 500 # Interval for plotting data points + +# Calculate the population at the start of the start_year +current_population = initial_population +for _ in range(start_year // 100): # Dividing by 100 as the death rate is applied every 100 years + current_population -= death_rate * current_population + +# Now calculate and plot the population from start_year to stop_year +years = np.arange(start_year, stop_year + 1, interval) population_values = [] for year in years: - # Apply the death rate for each 500-year period (5 times for each interval) - for _ in range(5): - population -= death_rate * population - population_values.append(population) + # Apply the death rate for each interval (interval/100 times for each period) + for _ in range(interval // 100): + current_population -= death_rate * current_population + population_values.append(current_population) # Create the graph with labels for each data point plt.figure(figsize=(8, 6)) plt.plot(years, population_values, marker='o', linestyle='-', color='b') plt.xlabel('Years') plt.ylabel('Population') -plt.title('Population Projection from Year 4000') +plt.title(f'Population Projection from Year {start_year} to {stop_year}') # Adding labels to the data points for i, txt in enumerate(population_values):