import numpy as np from scipy.stats import spearmanr from scipy.stats import pearsonr import matplotlib.pyplot as plt # Generating non-linear data np.random.seed(42) A = np.linspace(-10, 10, 100) B = A**5 + np.random.normal(0, 4000, size=len(A)) # Calculate Spearman correlation coefficient spearman_corr, _ = spearmanr(A, B) # Calculate Pearson correlation coefficient pearson_corr, _ = pearsonr(A, B) m, b = np.polyfit(A, B, 1) # Fit a linear regression line # Scatter plot fig, ax = plt.subplots() ax.scatter(A, B, color=sns.color_palette("hls",24)[14], alpha=.9, label='Data points') plt.plot(X, m * X + b, color='red', alpha=.6, label='Pearson Correlation Line') plt.title("A vs. B (Non-linear Relationship)") plt.xlabel("A") plt.ylabel("B") ax.spines['top'].set_visible(False) ax.spines['bottom'].set_visible(False) ax.spines['right'].set_visible(False) ax.spines['left'].set_visible(False) ax.xaxis.set_ticks_position('none') ax.yaxis.set_ticks_position('none') plt.legend()