Menu

Tensile Testing and Materials Science

Stress-Strain Curve Generator for Tensile Testing and Materials Science

A stress-strain curve captures how a material deforms under load, from the elastic region through yielding to failure. Plotivy turns tensile test data into a publication-ready Python figure with the elastic slope, yield point, and ultimate tensile strength clearly annotated.

When a Stress-Strain Curve Is the Right Choice

Use a stress-strain curve when you need to characterize a material's mechanical behavior from a tensile or compression test. It is the standard figure in materials science and mechanical engineering because a single plot encodes stiffness, strength, and ductility together.

Elastic modulus

Read Young's modulus from the slope of the initial linear region.

Yield strength

Mark where the material stops returning to its original shape.

Ultimate strength

Show the peak stress the specimen sustains before necking.

Ductility

Compare elongation at failure across alloys, polymers, or treatments.

What Plotivy Adds to the Workflow

Annotated key points

The yield point and ultimate tensile strength are marked so reviewers find them instantly.

Clear regions

The elastic slope and plastic hardening read distinctly from the load curve.

Failure behavior

Necking past the ultimate point keeps the figure faithful to real ductile response.

Reproducible Python output

Every figure is editable code, so you can overlay multiple specimens or materials.

Live Code Lab: Stress-Strain Curve

This example builds a ductile-metal curve with an elastic region, plastic hardening, and necking after the ultimate point, then annotates the yield point and ultimate tensile strength. Swap in your own strain and stress arrays to chart a real tensile test.

Chart gallery

Related Chart Types

Other chart templates for mechanical testing and materials characterization

Browse all chart types →
Stress-strain curve showing elastic region, yield point, plastic region, ultimate tensile strength, and fracture point with annotations
Statistical•matplotlib, numpy
From the chart gallery•Qualifying structural steel grades against ASTM or ISO mechanical property standards

Stress-Strain Curve

Displays mechanical stress versus strain from tensile testing, annotating elastic modulus, yield point, ultimate tensile strength, and fracture.

Sample code / prompt

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)
strain = np.linspace(0, 0.5, 1000)
E = 200e3  # Young's modulus MPa
yield_s = 350
UTS = 500
elastic = E * strain
plastic_start = yield_s / E
Magnetic hysteresis M-H loop showing a closed rectangular loop with annotated coercivity, remanence, and saturation magnetization
Statistical•matplotlib, numpy
From the chart gallery•Characterizing permanent magnet materials (NdFeB, SmCo) for energy product BHmax

Hysteresis Loop

Plots magnetization as a function of applied magnetic field, forming the characteristic closed loop that quantifies coercivity, remanence, and saturation.

Sample code / prompt

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(42)
H = np.linspace(-10, 10, 500)
Ms = 1.0
Hc = 3.0
M_upper = Ms * np.tanh((H + Hc) / 2)
M_lower = Ms * np.tanh((H - Hc) / 2)
Multi-line graph showing temperature trends for 3 cities over a year
Time Series•matplotlib, seaborn
From the chart gallery•Stock price tracking over time

Line Graph

Displays data points connected by straight line segments to show trends over time.

Sample code / prompt

import matplotlib.pyplot as plt
import numpy as np

# Generate temperature data for 3 major US cities over 12 months
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
nyc = [30, 32, 40, 52, 65, 75, 82, 81, 74, 63, 50, 38]
miami = [65, 66, 70, 76, 82, 87, 90, 90, 87, 80, 72, 66]
chicago = [25, 27, 35, 48, 62, 72, 80, 79, 71, 60, 45, 32]

# Create figure with enhanced styling
Scatter plot of height vs weight colored by gender with regression line
Statistical•matplotlib, seaborn
From the chart gallery•Correlation analysis between metrics

Scatterplot

Displays values for two variables as points on a Cartesian coordinate system.

Sample code / prompt

import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
import pandas as pd

# Generate sample data
np.random.seed(42)
n_samples = 200
height = np.random.normal(170, 8, n_samples)
weight = height * 0.6 + np.random.normal(0, 8, n_samples) - 50
Line graph with error bars showing 95% confidence intervals
Statistical•matplotlib
From the chart gallery•Scientific data presentation

Error Bars

Graphical representations of the variability of data indicating error or uncertainty in measurements.

Sample code / prompt

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# Generate bacterial growth data with replicates
np.random.seed(42)
time_points = np.array([0, 4, 8, 12, 18, 24])
mean_values = np.array([10, 25, 80, 250, 600, 800])

# Generate 5 replicates per time point with noise

Turn Tensile Data into a Clear Mechanical Figure

Build a stress-strain curve from your own test data, annotate the yield and ultimate points, and export a figure that is ready for a paper, report, or spec sheet.