Import Library
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme(style= "whitegrid")Data Labeling
df_semai = pd.read_csv('data_semai.csv')
df_pancang = pd.read_csv('data_pancang.csv')
df_tiang = pd.read_csv('data_tiang.csv')
df_pohon = pd.read_csv('data_pohon.csv')
df_semai['Fase'] = 'Semai'
df_pancang['Fase'] = 'Pancang'
df_tiang['Fase'] = 'Tiang'
df_pohon['Fase'] = 'Pohon'
df_all = pd.concat([df_semai, df_pancang, df_tiang, df_pohon],
ignore_index= True)Visualisasi Distribusi Spesies Berdasarkan Gradient Elevasi
plt.figure(figsize= (10, 6))
sns.scatterplot(
data = df_all,
x = 'Ketinggian (mdpl)',
y = 'Jumlah Jenis',
hue = 'Fase',
style = 'Fase',
s = 100,
palette = 'viridis'
)
plt.title('Hubungan Ketinggian Tempat vs Jumlah Jenis Tumbuhan', fontsize=16, weight = 'bold')
plt.xlabel('Ketinggian (mdpl)', fontsize=12)
plt.ylabel('Jumlah Jenis (Spesies)', fontsize=12)
plt.legend(title='Fase Pertumbuhan', bbox_to_anchor=(1.05, 1), loc='upper left')
plt.tight_layout()
plt.show()Visualisasi Spesies Kunci Dominan
top_species = df_all.sort_values('INP (%)', ascending=False).groupby('Fase').head(3)
plt.figure(figsize=(12, 7))
sns.barplot(
data=top_species,
x='INP (%)',
y='Jenis Dominan',
hue='Fase',
dodge=False,
palette='viridis'
)
plt.title('Spesies Dominan Berdasarkan Indeks Nilai Penting (INP)', fontsize=16, weight = 'bold')
plt.xlabel('Indeks Nilai Penting (%)', fontsize=12)
plt.ylabel('Nama Spesies', fontsize=12)
plt.legend(title='Fase Pertumbuhan', loc='lower left')
plt.tight_layout()
plt.show()