64 lines
2.2 KiB
Python
64 lines
2.2 KiB
Python
import pandas as pd
|
|
import matplotlib.pyplot as plt
|
|
|
|
# Paths to the cleaned data CSV files
|
|
files = [
|
|
'output/rive_droite_2024.csv',
|
|
'output/rive_gauche_2024.csv',
|
|
'output/canoo_2023.csv',
|
|
'output/canoo_2020.csv'
|
|
]
|
|
|
|
sources_files = [
|
|
'output/sources/points_sources_rive_droite.csv',
|
|
'output/sources/points_sources_canoo_2023.csv'
|
|
]
|
|
|
|
colors = ['blue', 'limegreen', 'red', 'purple'] # Colors for each year
|
|
labels = ['2024 Canoe Right Bank', '2024 Canoe Left Bank', '2023 Canoe', '2020 Canoe'] # Labels for each dataset
|
|
|
|
sources_colors = ['blue', 'red'] # Colors for each year
|
|
|
|
|
|
dfs = [] # List to store dataframes
|
|
for file in files:
|
|
df = pd.read_csv(file)
|
|
dfs.append(df)
|
|
|
|
|
|
sources_dfs = [] # List to store dataframes
|
|
for file in sources_files:
|
|
df = pd.read_csv(file)
|
|
sources_dfs.append(df)
|
|
|
|
plt.figure(figsize=(12, 8)) # Create a figure with a custom size
|
|
|
|
for df, color, label in zip(dfs, colors, labels):
|
|
plt.scatter(df.iloc[:, 0], df.iloc[:, 1], color=color, label=label, alpha=0.8, s=2) # Plot each year's data
|
|
|
|
|
|
for df, color in zip(sources_dfs, sources_colors):
|
|
bbox_props = dict(boxstyle="round,pad=0.3", fc="white", ec=color, alpha=0.7)
|
|
for i, row in df.iterrows():
|
|
plt.scatter(row['distance'], row['conductivite'], color='white', alpha=0.8, s=60, edgecolors='black', linewidth=3)
|
|
plt.annotate(row['name'],
|
|
(row['distance'], row['conductivite']),
|
|
weight='bold' ,
|
|
fontsize=11,
|
|
xytext=(0, 25),
|
|
bbox=bbox_props,
|
|
# arrowprops=dict(facecolor='black', shrink=0.05),
|
|
textcoords='offset points',
|
|
ha='center')
|
|
|
|
|
|
plt.title('Conductivity by kilometers of river for different year of continuous measurements', y=1 , fontsize = 15, fontweight = 'bold')
|
|
plt.xlabel('Distance (kilometers)')
|
|
plt.ylabel('Conductivity (us/cm)')
|
|
plt.legend(loc='lower right', frameon=True, facecolor='white', edgecolor='black', fancybox=False, framealpha=1)
|
|
plt.grid(True)
|
|
|
|
# Sauvegarder le graphique
|
|
plt.savefig('output/my_conductivity_plot2.png', format='png', dpi=300, bbox_inches='tight')
|
|
|
|
plt.show() |