Untitled
unknown
plain_text
5 months ago
1.8 kB
3
Indexable
Updated. . . . . . . . . import matplotlib.pyplot as plt import seaborn as sns import numpy as np import pandas as pd # Load your data (update the path) df_correlation = pd.read_excel('your_file_path.xlsx', sheet_name='CORRELLATION ANALYSIS') # Cleaning data df_cleaned = df_correlation.drop(columns=['SAMPLE AREA', 'Unnamed: 15', 'SAMPLE AREA.1', 'NO3-.1'], errors='ignore') # Pearson correlation matrix correlation_matrix = df_cleaned.corr() # Set up the figure and polar coordinates fig, ax = plt.subplots(figsize=(10, 10), subplot_kw={'projection': 'polar'}) # Number of variables num_vars = len(correlation_matrix.columns) # Angles for each variable (space them equally) angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist() # Re-arrange the correlation matrix in polar coordinates corr_values = correlation_matrix.values # Loop over each pair of correlations to plot them for i in range(num_vars): for j in range(num_vars): angle_i = angles[i] angle_j = angles[j] corr_value = corr_values[i, j] # Define color and line thickness based on correlation value color = plt.cm.coolwarm((corr_value + 1) / 2) # Plot a line between the two angles, with color representing the correlation ax.plot([angle_i, angle_j], [1, 1], color=color, lw=2) # Add labels for each variable at the corresponding angle for i, var in enumerate(correlation_matrix.columns): ax.text(angles[i], 1.1, var, ha='center', va='center') # Remove the grid and axis labels ax.set_axis_off() # Create a color bar to show correlation strength sm = plt.cm.ScalarMappable(cmap="coolwarm", norm=plt.Normalize(vmin=-1, vmax=1)) cbar = plt.colorbar(sm, ax=ax, pad=0.1) cbar.set_label("Correlation Coefficient") plt.title("Circular Correlation Heatmap") plt.show()
Editor is loading...
Leave a Comment