KDE Plot

App Store Rating KDE

Density distribution of mobile app ratings by category

Output
App Store Rating KDE
Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde

np.random.seed(1313)
BG_COLOR = '#ffffff'
TEXT_COLOR = '#1f2937'
GRID_COLOR = '#e5e7eb'

# App ratings (1-5)
games = np.random.beta(8, 3, 500) * 4 + 1
productivity = np.random.beta(6, 2.5, 500) * 4 + 1
social = np.random.beta(5, 3, 500) * 4 + 1

fig, ax = plt.subplots(figsize=(10, 6), facecolor=BG_COLOR)
ax.set_facecolor(BG_COLOR)

x_range = np.linspace(1, 5, 500)

for data, color, label in [(games, '#F5276C', 'Games'), 
                            (productivity, '#4927F5', 'Productivity'),
                            (social, '#27D3F5', 'Social')]:
    kde = gaussian_kde(data)
    density = kde(x_range)
    ax.plot(x_range, density, color=color, linewidth=2.5, label=label)
    ax.fill_between(x_range, density, alpha=0.25, color=color)

ax.set_xlabel('App Rating (Stars)', fontsize=12, color=TEXT_COLOR, fontweight='500')
ax.set_ylabel('Density', fontsize=12, color=TEXT_COLOR, fontweight='500')
ax.set_title('App Store Ratings by Category', fontsize=14, color=TEXT_COLOR, fontweight='bold', pad=15)
ax.set_xlim(1, 5)

ax.tick_params(colors=TEXT_COLOR, labelsize=10)
for spine in ax.spines.values():
    spine.set_color(GRID_COLOR)
ax.yaxis.grid(True, color=GRID_COLOR, linewidth=0.5, alpha=0.7)
ax.legend(facecolor=BG_COLOR, edgecolor=GRID_COLOR, labelcolor=TEXT_COLOR, fontsize=10)

plt.tight_layout()
plt.show()
Library

Matplotlib

Category

Statistical

Did this help you?

Support PyLucid to keep it free & growing

Support