.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/extras/distributions.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_extras_distributions.py: Particle Distribution ===================== This script demonstrates how to visualize various particle diameter distributions from the FlowCyPy library. It generates and plots particle diameters based on different statistical distributions, such as Normal, LogNormal, Weibull, and more. Workflow Summary: 1. Initialize particle diameter distributions (Normal, LogNormal, Rosin-Rammler, Weibull, Delta, Uniform). 2. Generate random particle diameters for each distribution. 3. Plot the histograms of each distribution to visualize the spread of particle diameters. Distributions Covered: - Normal Distribution: Sizes follow a normal (Gaussian) distribution. - LogNormal Distribution: Sizes follow a log-normal distribution. - Rosin-Rammler Distribution: Skewed distribution commonly used for particle diameter modeling. - Weibull Distribution: Flexible distribution used in particle modeling. - Delta Distribution: All particles are of a fixed diameter. - Uniform Distribution: Sizes are uniformly distributed between a minimum and maximum value. .. GENERATED FROM PYTHON SOURCE LINES 23-24 Import necessary libraries .. GENERATED FROM PYTHON SOURCE LINES 24-90 .. code-block:: Python import numpy as np import matplotlib.pyplot as plt from FlowCyPy import distribution from FlowCyPy.units import nanometer # Set random seed for reproducibility np.random.seed(3) # Define the number of particles to generate n_particles = 10000 # Initialize subplots for the distribution plots fig, axes = plt.subplots(3, 2, figsize=(12, 10)) axes = axes.ravel() # 1. Normal Distribution normal_dist = distribution.Normal(mean=100 * nanometer, std_dev=10 * nanometer) normal_diameters = normal_dist.generate(n_particles) axes[0].hist(normal_diameters, bins=50, color='skyblue', edgecolor='black') axes[0].set_title('Normal Distribution') axes[0].set_xlabel('Size (nm)') axes[0].set_ylabel('Frequency') # 2. LogNormal Distribution lognormal_dist = distribution.LogNormal(mean=100 * nanometer, std_dev=0.25 * nanometer) lognormal_sizes = lognormal_dist.generate(n_particles) axes[1].hist(lognormal_sizes, bins=50, color='lightgreen', edgecolor='black') axes[1].set_title('LogNormal Distribution') axes[1].set_xlabel('Size (nm)') axes[1].set_ylabel('Frequency') # 3. Rosin-Rammler Distribution rosinrammler_dist = distribution.RosinRammler(characteristic_property=50 * nanometer, spread=2.0) rosinrammler_sizes = rosinrammler_dist.generate(n_particles) axes[2].hist(rosinrammler_sizes, bins=50, color='lightcoral', edgecolor='black') axes[2].set_title('Rosin-Rammler Distribution') axes[2].set_xlabel('Size (nm)') axes[2].set_ylabel('Frequency') # 4. Weibull Distribution weibull_dist = distribution.Weibull(scale=50 * nanometer, shape=1.5 * nanometer) weibull_sizes = weibull_dist.generate(n_particles) axes[3].hist(weibull_sizes, bins=50, color='lightpink', edgecolor='black') axes[3].set_title('Weibull Distribution') axes[3].set_xlabel('Size (nm)') axes[3].set_ylabel('Frequency') # 5. Delta Distribution delta_dist = distribution.Delta(position=100 * nanometer) delta_sizes = delta_dist.generate(n_particles) axes[4].hist(delta_sizes, bins=50, color='lightyellow', edgecolor='black') axes[4].set_title('Delta Distribution') axes[4].set_xlabel('Size (nm)') axes[4].set_ylabel('Frequency') # 6. Uniform Distribution uniform_dist = distribution.Uniform(lower_bound=50 * nanometer, upper_bound=150 * nanometer) uniform_sizes = uniform_dist.generate(n_particles) axes[5].hist(uniform_sizes, bins=50, color='lightgray', edgecolor='black') axes[5].set_title('Uniform Distribution') axes[5].set_xlabel('Size (nm)') axes[5].set_ylabel('Frequency') # Adjust layout plt.tight_layout() plt.show() .. image-sg:: /gallery/extras/images/sphx_glr_distributions_001.png :alt: Normal Distribution, LogNormal Distribution, Rosin-Rammler Distribution, Weibull Distribution, Delta Distribution, Uniform Distribution :srcset: /gallery/extras/images/sphx_glr_distributions_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 1.717 seconds) .. _sphx_glr_download_gallery_extras_distributions.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: distributions.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: distributions.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: distributions.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_