# As-rolled specimens Data
rolled_data = data.frame(
Location = c('1', '2', "3", "4", "5", "6", "7", "8"),
Hardness1 = c(68.2, 75.3, 81.3, 85.2, 86.0, 90.4, 90.8, 89.6),
Hardness2 = c(67.4, 75.7, 80.1, 84.8, 87.2, 92.0, 90.9, 91.9),
Hardness3 = c(65.4, 76.6, 81.2, 85.1, 91.8, 91.8, 90.9, 89.2),
t0 = c(5.27, 6.02, 6.90, 7.87, 5.17, 5.82, 6.60, 7.50),
tf = c(5.02, 5.05, 5.12, 5.13, 2.76, 2.74, 2.77, 2.78)
)
rolled_data
# Average hardness and % cold work
rolled_data$Hardness = rowMeans(rolled_data[, c("Hardness1", "Hardness2", "Hardness3")])
rolled_data$CW = 100 * (rolled_data$t0 - rolled_data$tf) / rolled_data$t0
# Annealed specimens Data
annealed_data = data.frame(
Location = c("1", "2", "3", "4", "5", "6", "7", "8"),
Hardness1 = c(33.8, 40.5, 45.5, 46.5, 52.6, 52.5, 53.6, 55.0),
Hardness2 = c(34.6, 42.5, 45.6, 43.9, 52.6, 53.7, 53.9, 54.9),
Hardness3 = c(31.8, 38.8, 44.8, 45.2, 50.2, 53.5, 53.3, 54.9),
t0 = c(5.49, 6.37, 7.29, 8.34, 5.64, 6.31, 7.15, 8.48),
tf = c(4.78, 4.76, 4.80, 4.76, 2.25, 2.39, 2.28, 2.37)
)
# Average hardness and % cold work
annealed_data$Hardness = rowMeans(annealed_data[, c("Hardness1", "Hardness2", "Hardness3")])
annealed_data$CW = 100 * (annealed_data$t0 - annealed_data$tf) / annealed_data$t0
# Plot
# Cold Work and Hardness data
rolled_CW <- c(0, 4.74, 16.10, 25.80, 34.80, 46.61, 52.91, 58.03, 62.96)
rolled_H <- c(34.1, 67.0, 75.9, 80.9, 85.0, 88.3, 91.4, 90.9, 90.2)
annealed_CW <- c(0, 12.94, 25.27, 34.16, 42.91, 60.11, 62.14, 68.11, 72.05)
annealed_H <- c(28.2, 33.4, 40.6, 45.3, 45.2, 51.8, 53.2, 53.6, 54.9)
# Location labels for both curves (must match lengths)
loc_labels <- c("0%", "I", "II", "III", "IV", "V", "VI", "VII", "VIII")
plot(rolled_CW, rolled_H, type = "o", pch = 16, col = "orange",
xlab = "% Cold Work", ylab = "HRB",
main = "Hardness vs. % Cold Work", ylim = c(30, 95), xlim = c(0, 80))
# Add annealed data
lines(annealed_CW, annealed_H, type = "o", pch = 15, col = "steelblue")
# Add legend
legend("bottomright", legend = c("As-Rolled", "Annealed at 500°C"),
col = c("orange", "steelblue"), pch = c(16, 15), lty = 1)
# Add labels to each point
# Rolled labels (orange)
for (i in 1:length(rolled_CW)) {
text(rolled_CW[i], rolled_H[i] + 3, labels = loc_labels[i], col = "orange", cex = 0.8)
}
# Annealed labels (blue)
for (i in 1:length(annealed_CW)) {
text(annealed_CW[i], annealed_H[i] - 3, labels = loc_labels[i], col = "steelblue", cex = 0.8)
}

LS0tCnRpdGxlOiAiTUUzMzAgTGFiIDM6IENvbGQgV29yayBhbmQgQW5uZWFsaW5nIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKYXV0aG9yOiBKb3NodWEgWmhhbmcKLS0tCgoKYGBge3J9CiMgQXMtcm9sbGVkIHNwZWNpbWVucyBEYXRhCnJvbGxlZF9kYXRhID0gZGF0YS5mcmFtZSgKICBMb2NhdGlvbiA9IGMoJzEnLCAnMicsICIzIiwgIjQiLCAiNSIsICI2IiwgIjciLCAiOCIpLAogIEhhcmRuZXNzMSA9IGMoNjguMiwgNzUuMywgODEuMywgODUuMiwgODYuMCwgOTAuNCwgOTAuOCwgODkuNiksCiAgSGFyZG5lc3MyID0gYyg2Ny40LCA3NS43LCA4MC4xLCA4NC44LCA4Ny4yLCA5Mi4wLCA5MC45LCA5MS45KSwKICBIYXJkbmVzczMgPSBjKDY1LjQsIDc2LjYsIDgxLjIsIDg1LjEsIDkxLjgsIDkxLjgsIDkwLjksIDg5LjIpLAogIHQwID0gYyg1LjI3LCA2LjAyLCA2LjkwLCA3Ljg3LCA1LjE3LCA1LjgyLCA2LjYwLCA3LjUwKSwKICB0ZiA9IGMoNS4wMiwgNS4wNSwgNS4xMiwgNS4xMywgMi43NiwgMi43NCwgMi43NywgMi43OCkKKQoKcm9sbGVkX2RhdGEKIyBBdmVyYWdlIGhhcmRuZXNzIGFuZCAlIGNvbGQgd29yawpyb2xsZWRfZGF0YSRIYXJkbmVzcyA9IHJvd01lYW5zKHJvbGxlZF9kYXRhWywgYygiSGFyZG5lc3MxIiwgIkhhcmRuZXNzMiIsICJIYXJkbmVzczMiKV0pCnJvbGxlZF9kYXRhJENXID0gMTAwICogKHJvbGxlZF9kYXRhJHQwIC0gcm9sbGVkX2RhdGEkdGYpIC8gcm9sbGVkX2RhdGEkdDAKYGBgCgoKCmBgYHtyfQojIEFubmVhbGVkIHNwZWNpbWVucyBEYXRhCmFubmVhbGVkX2RhdGEgPSBkYXRhLmZyYW1lKAogIExvY2F0aW9uID0gYygiMSIsICIyIiwgIjMiLCAiNCIsICI1IiwgIjYiLCAiNyIsICI4IiksCiAgSGFyZG5lc3MxID0gYygzMy44LCA0MC41LCA0NS41LCA0Ni41LCA1Mi42LCA1Mi41LCA1My42LCA1NS4wKSwKICBIYXJkbmVzczIgPSBjKDM0LjYsIDQyLjUsIDQ1LjYsIDQzLjksIDUyLjYsIDUzLjcsIDUzLjksIDU0LjkpLAogIEhhcmRuZXNzMyA9IGMoMzEuOCwgMzguOCwgNDQuOCwgNDUuMiwgNTAuMiwgNTMuNSwgNTMuMywgNTQuOSksCiAgdDAgPSBjKDUuNDksIDYuMzcsIDcuMjksIDguMzQsIDUuNjQsIDYuMzEsIDcuMTUsIDguNDgpLAogIHRmID0gYyg0Ljc4LCA0Ljc2LCA0LjgwLCA0Ljc2LCAyLjI1LCAyLjM5LCAyLjI4LCAyLjM3KQopCgojIEF2ZXJhZ2UgaGFyZG5lc3MgYW5kICUgY29sZCB3b3JrCmFubmVhbGVkX2RhdGEkSGFyZG5lc3MgPSByb3dNZWFucyhhbm5lYWxlZF9kYXRhWywgYygiSGFyZG5lc3MxIiwgIkhhcmRuZXNzMiIsICJIYXJkbmVzczMiKV0pCmFubmVhbGVkX2RhdGEkQ1cgPSAxMDAgKiAoYW5uZWFsZWRfZGF0YSR0MCAtIGFubmVhbGVkX2RhdGEkdGYpIC8gYW5uZWFsZWRfZGF0YSR0MApgYGAKCgpgYGB7cn0KIyBQbG90IAojIENvbGQgV29yayBhbmQgSGFyZG5lc3MgZGF0YQpyb2xsZWRfQ1cgPC0gYygwLCA0Ljc0LCAxNi4xMCwgMjUuODAsIDM0LjgwLCA0Ni42MSwgNTIuOTEsIDU4LjAzLCA2Mi45NikKcm9sbGVkX0ggPC0gYygzNC4xLCA2Ny4wLCA3NS45LCA4MC45LCA4NS4wLCA4OC4zLCA5MS40LCA5MC45LCA5MC4yKQphbm5lYWxlZF9DVyA8LSBjKDAsIDEyLjk0LCAyNS4yNywgMzQuMTYsIDQyLjkxLCA2MC4xMSwgNjIuMTQsIDY4LjExLCA3Mi4wNSkKYW5uZWFsZWRfSCA8LSBjKDI4LjIsIDMzLjQsIDQwLjYsIDQ1LjMsIDQ1LjIsIDUxLjgsIDUzLjIsIDUzLjYsIDU0LjkpCgojIExvY2F0aW9uIGxhYmVscyBmb3IgYm90aCBjdXJ2ZXMgKG11c3QgbWF0Y2ggbGVuZ3RocykKbG9jX2xhYmVscyA8LSBjKCIwJSIsICJJIiwgIklJIiwgIklJSSIsICJJViIsICJWIiwgIlZJIiwgIlZJSSIsICJWSUlJIikKYGBgCgoKYGBge3J9CnBsb3Qocm9sbGVkX0NXLCByb2xsZWRfSCwgdHlwZSA9ICJvIiwgcGNoID0gMTYsIGNvbCA9ICJvcmFuZ2UiLAogICAgIHhsYWIgPSAiJSBDb2xkIFdvcmsiLCB5bGFiID0gIkhSQiIsCiAgICAgbWFpbiA9ICJIYXJkbmVzcyB2cy4gJSBDb2xkIFdvcmsiLCB5bGltID0gYygzMCwgOTUpLCB4bGltID0gYygwLCA4MCkpCgojIEFkZCBhbm5lYWxlZCBkYXRhCmxpbmVzKGFubmVhbGVkX0NXLCBhbm5lYWxlZF9ILCB0eXBlID0gIm8iLCBwY2ggPSAxNSwgY29sID0gInN0ZWVsYmx1ZSIpCgojIEFkZCBsZWdlbmQKbGVnZW5kKCJib3R0b21yaWdodCIsIGxlZ2VuZCA9IGMoIkFzLVJvbGxlZCIsICJBbm5lYWxlZCBhdCA1MDDCsEMiKSwKICAgICAgIGNvbCA9IGMoIm9yYW5nZSIsICJzdGVlbGJsdWUiKSwgcGNoID0gYygxNiwgMTUpLCBsdHkgPSAxKQoKIyBBZGQgbGFiZWxzIHRvIGVhY2ggcG9pbnQKIyBSb2xsZWQgbGFiZWxzIChvcmFuZ2UpCmZvciAoaSBpbiAxOmxlbmd0aChyb2xsZWRfQ1cpKSB7CiAgdGV4dChyb2xsZWRfQ1dbaV0sIHJvbGxlZF9IW2ldICsgMywgbGFiZWxzID0gbG9jX2xhYmVsc1tpXSwgY29sID0gIm9yYW5nZSIsIGNleCA9IDAuOCkKfQoKIyBBbm5lYWxlZCBsYWJlbHMgKGJsdWUpCmZvciAoaSBpbiAxOmxlbmd0aChhbm5lYWxlZF9DVykpIHsKICB0ZXh0KGFubmVhbGVkX0NXW2ldLCBhbm5lYWxlZF9IW2ldIC0gMywgbGFiZWxzID0gbG9jX2xhYmVsc1tpXSwgY29sID0gInN0ZWVsYmx1ZSIsIGNleCA9IDAuOCkKfQoKYGBgCgo=