Hexbin Plot
Particle Velocity Field
Physics simulation hexbin of particle velocity components
Output
Python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
np.random.seed(222)
vx = np.random.normal(0, 2, 8000)
vy = np.random.normal(0, 2, 8000)
# Add some structure
theta = np.random.uniform(0, 2*np.pi, 2000)
vx = np.append(vx, 3*np.cos(theta) + np.random.normal(0, 0.3, 2000))
vy = np.append(vy, 3*np.sin(theta) + np.random.normal(0, 0.3, 2000))
fig, ax = plt.subplots(figsize=(10, 8), facecolor='#0a0a0a')
ax.set_facecolor('#0a0a0a')
colors = ['#0a0a0a', '#1f0a2a', '#3f0a4a', '#6f0a6a', '#9f2a8a', '#cf4aaa', '#ef7aca', '#ffaaff']
cmap = LinearSegmentedColormap.from_list('plasma_custom', colors, N=256)
hb = ax.hexbin(vx, vy, gridsize=35, cmap=cmap, mincnt=1, edgecolors='none')
cbar = plt.colorbar(hb, ax=ax, pad=0.02, shrink=0.8)
cbar.ax.set_facecolor('#0a0a0a')
cbar.outline.set_edgecolor('#3f0a4a')
cbar.ax.tick_params(colors='#cf4aaa', labelsize=9)
cbar.set_label('Particle Density', color='#cf4aaa', fontsize=10)
ax.set_xlabel('Vx (m/s)', color='#cf4aaa', fontsize=11)
ax.set_ylabel('Vy (m/s)', color='#cf4aaa', fontsize=11)
ax.tick_params(colors='#cf4aaa', labelsize=10)
ax.set_aspect('equal')
for spine in ax.spines.values():
spine.set_visible(False)
plt.tight_layout()
Library
Matplotlib
Category
Pairwise Data
More Hexbin Plot examples
☕