Dataset Description: 3D Wave-Like Scatter Plot of Rabia's Poetry Themes
Description
This dataset represents a simulated exploration of various themes found in the poetry of Rabia, an influential figure in Sufi literature. The simulation employs Monte Carlo methods to generate wave-like data patterns that reflect three key dimensions associated with these themes: Depth, Emotional Impact, and Spiritual Provocation. The dataset consists of 50 samples, each capturing the interplay between these dimensions across six distinct themes. Themes The following themes are included in the dataset: Love Longing Unity Devotion Mysticism Separation Data Generation Sampling Method: For each theme, scores are generated using a normal distribution with a mean of 5 and a standard deviation of 2. This approach creates a range of values that simulate varying intensities for each theme. Clipping: The generated scores are clipped to ensure they remain within a realistic range of 0 to 10, reflecting the potential intensity of emotional and spiritual experiences. Wave Modulation: To introduce wave-like characteristics, sine and cosine functions are applied to the scores. This modulation creates dynamic patterns that enhance the visual representation of how these themes might fluctuate in depth, emotional impact, and spiritual provocation. Data Structure The dataset is structured as follows: all_wave_depth: A 2D array where each row corresponds to a sample and each column represents the depth scores for the six themes. all_wave_emotional: A 2D array capturing the emotional impact scores across samples and themes. all_wave_spiritual: A 2D array representing spiritual provocation scores for each theme across samples. Visualization The data is visualized using a 3D scatter plot where: The x-axis represents the Depth scores. The y-axis reflects the Emotional Impact scores. The z-axis denotes the Spiritual Provocation scores. Each point in the scatter plot corresponds to a sample iteration, with varying transparency and color based on depth scores. The colors are derived from the Viridis colormap, providing an aesthetically pleasing gradient that enhances interpretability. Annotations Each theme is annotated in the plot with its name, positioned at the average coordinates of its respective wave data across all samples. This allows for easy identification of how each theme relates to the three dimensions being analyzed. Applications This dataset can be utilized for: Analyzing emotional and spiritual trends within Sufi poetry. Exploring how different themes interact in terms of depth and emotional resonance. Visualizing complex relationships in poetic expressions through advanced data visualization techniques. Overall, this dataset serves as a rich resource for researchers, educators, and enthusiasts interested in the intersection of poetry, emotion, and spirituality.
Files
Steps to reproduce
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # Sample themes themes = ['Love', 'Longing', 'Unity', 'Devotion', 'Mysticism', 'Separation'] num_samples = 50 # Initialize lists - hold wave data for each sample all_wave_depth = [] all_wave_emotional = [] all_wave_spiritual = [] # Generate wave-like data for each sample using Monte Carlo simulation for _ in range(num_samples): # Random scores for each theme using normal distribution for more interesting patterns depth_scores = np.random.normal(loc=5, scale=2, size=len(themes)) # Mean=5, StdDev=2 emotional_impact = np.random.normal(loc=5, scale=2, size=len(themes)) # Mean=5, StdDev=2 spiritual_provocation = np.random.normal(loc=5, scale=2, size=len(themes)) # Mean=5, StdDev=2 # Clip values to ensure they are within a reasonable range (0 to 10) depth_scores = np.clip(depth_scores, 0, 10) emotional_impact = np.clip(emotional_impact, 0, 10) spiritual_provocation = np.clip(spiritual_provocation, 0, 10) # Generate wave-like modulation using sine and cosine functions theta = np.linspace(0, 2 * np.pi, len(themes)) # Angle for each theme wave_depth = depth_scores + 0.5 * np.sin(theta) # Modulate depth as a wave wave_emotional = emotional_impact + 0.5 * np.cos(theta) # Modulate emotional impact as a wave wave_spiritual = spiritual_provocation + 0.3 * np.sin(theta) # Modulate spiritual provocation as a wave # Append the results to the lists all_wave_depth.append(wave_depth) all_wave_emotional.append(wave_emotional) all_wave_spiritual.append(wave_spiritual) # Convert lists to numpy arrays for easier manipulation all_wave_depth = np.array(all_wave_depth) all_wave_emotional = np.array(all_wave_emotional) all_wave_spiritual = np.array(all_wave_spiritual) # Create a 3D Scatter Plot with Wave Form fig = plt.figure(figsize=(12, 8)) ax = fig.add_subplot(111, projection='3d') # Plot scatter points for each sample iteration with varying transparency and color based on depth for i in range(num_samples): ax.scatter(all_wave_depth[i], all_wave_emotional[i], all_wave_spiritual[i], alpha=0.6 + (i / num_samples) * 0.4, edgecolor='black', color=plt.cm.viridis(i / num_samples)) # Use color keyword argument # Annotate each point with the theme name (optional) for i, theme in enumerate(themes): ax.text(np.mean(all_wave_depth[:, i]), np.mean(all_wave_emotional[:, i]), np.mean(all_wave_spiritual[:, i]), theme, fontsize=12, ha='center', color='red') # Set labels and title ax.set_title("3D Wave-Like Scatter Plot of Rabia's Poetry Themes Across Samples with Monte Carlo Simulations", fontsize=14, fontweight='bold') ax.set_xlabel('Depth (Wave)', fontsize=12) ax.set_ylabel('Emotional Impact (Wave)', fontsize=12) ax.set_zlabel('Spiritual Provocation (Wave)', fontsize=12) plt.tight_layout() plt.show()