3D Quiver

Extensional Strain Field

Displacement vectors showing extensional strain with stretching in one direction and compression in others.

Output
Extensional Strain Field
Python
import matplotlib.pyplot as plt
import numpy as np

# Extensional strain field
n = 5
x = np.linspace(-2, 2, n)
y = np.linspace(-2, 2, n)
z = np.linspace(-2, 2, n)
X, Y, Z = np.meshgrid(x, y, z)

# Pure extensional strain
U = X * 0.3
V = -Y * 0.15
W = -Z * 0.15

fig = plt.figure(figsize=(10, 8), facecolor='#ffffff')
ax = fig.add_subplot(111, projection='3d', facecolor='#ffffff')

ax.quiver(X, Y, Z, U, V, W, length=0.6, normalize=False,
          color='#be185d', alpha=0.8, arrow_length_ratio=0.3)

ax.set_xlim(-3, 3)
ax.set_ylim(-2.5, 2.5)
ax.set_zlim(-2.5, 2.5)

ax.set_xlabel('X', color='#1f2937', fontsize=10)
ax.set_ylabel('Y', color='#1f2937', fontsize=10)
ax.set_zlabel('Z', color='#1f2937', fontsize=10)
ax.set_title('Extensional Strain Field', color='#1f2937', fontsize=14, fontweight='bold', pad=20)

ax.tick_params(colors='#6b7280', labelsize=8)
ax.xaxis.pane.fill = False
ax.yaxis.pane.fill = False
ax.zaxis.pane.fill = False
ax.xaxis.pane.set_edgecolor('#e5e7eb')
ax.yaxis.pane.set_edgecolor('#e5e7eb')
ax.zaxis.pane.set_edgecolor('#e5e7eb')

ax.view_init(elev=25, azim=45)
plt.tight_layout()
plt.show()
Library

Matplotlib

Category

3D Charts

Did this help you?

Support PyLucid to keep it free & growing

Support