agraph
setGraphType(LogaritmicLogaritmic);
setViewport(750,550,70);
setGraphArea(2,10,3,1);
setGridandTicks(1,1,1,1);
setLabelsandTitle(BottomLeft,"Reynolds number","Friction coefficient","The Moody Diagram");
initPicture();
drawGraphArea();
fill="none";
strokewidth="2";
stroke="blue";
plot("SwameeJain(pow(10,8),1,x)",log(2320),10);
plot("SwameeJain(pow(10,7),1,x)",log(2320),10);
plot("SwameeJain(pow(10,6),1,x)",log(2320),10);
plot("SwameeJain(pow(10,5),1,x)",log(2320),10);
plot("SwameeJain(pow(10,4),1,x)",log(2320),10);
plot("SwameeJain(pow(10,3),1,x)",log(2320),10);
plot("SwameeJain(5*pow(10,3),1,x)",log(2320),10);
stroke="green";
plot("SwameeJain(pow(10,2),1,x)",log(2320),10);
plot("SwameeJain(2*pow(10,2),1,x)",log(2320),10);
plot("SwameeJain(3*pow(10,2),1,x)",log(2320),10);
plot("SwameeJain(4*pow(10,2),1,x)",log(2320),10);
plot("SwameeJain(5*pow(10,2),1,x)",log(2320),10);
stroke="red";
plot("64/x",2,log(2320));
plot("SwameeJain(0.0,1,x)",log(2320),10);
text([10.05,log(SwameeJain(pow(10,8),1,pow(10,10)))],"`epsilon=10^8`","middleright","espsilon_8");
text([10.05,log(SwameeJain(pow(10,7),1,pow(10,10)))],"`epsilon=10^7`","middleright","espsilon_7");
text([10.05,log(SwameeJain(pow(10,6),1,pow(10,10)))],"`epsilon=10^6`","middleright","espsilon_6");
text([10.05,log(SwameeJain(pow(10,5),1,pow(10,10)))],"`epsilon=10^5`","middleright","espsilon_5");
text([10.05,log(SwameeJain(pow(10,4),1,pow(10,10)))],"`epsilon=10^4`","middleright","espsilon_4");
text([10.05,log(SwameeJain(pow(10,3),1,pow(10,10)))],"`epsilon=10^3`","middleright","espsilon_3");
text([10.05,log(SwameeJain(5*pow(10,3),1,pow(10,10)))],"`5*10^3`","middleright","espsilon_53");
text([10.05,log(SwameeJain(pow(10,2),1,pow(10,10)))],"`epsilon=10^2`","middleright","espsilon_2");
text([10.05,log(SwameeJain(5*pow(10,2),1,pow(10,10)))],"`5*10^2`","middleright","espsilon_52");
text([10.05,log(SwameeJain(pow(10,1),1,pow(10,10)))],"`epsilon=10^1`","middleright","espsilon_1");
text([2.1,2.5],"Laminar","rightmiddle","laminar");
text([6,2.5],"Turbulent","rightmiddle","turbulent");
createGradient("5%","#EEEEEE","95%","#AAAAAA","MyGradient");
setGradient("MyGradient",0.3);
axesBorder("2","black");
createGradient("5%","#DDDDDD","95%","#AAAAAA","MyGradient2");
setGradient("MyGradient2",0.3);
viewportBorder("3","black");
endagraph
Pointer coordinates: (x,y) Click coordinates: (x,y)

Press the left mouse button and move over the Moody Diagram, see the
transition between laminar and turbulent flow. 