3 added 82 characters in body edited Aug 16 '14 at 12:29 Chris Degnen 22.7k22 gold badges3838 silver badges8989 bronze badges Here is a method using scaling. The tangent is drawn at x = 0.8. f[t_] := (1 - t)^(-0.5); Print@LogPlot[f[t], {t, 0, 1}, PlotRange -> {{0, 1}, {0.66, 20}}, Frame -> True, PlotLabel -> "Original plot", AspectRatio -> 1]; rescale[i_] := Exp[(i - 1) Log[2.]]; Print[Column[{"Rescaling function: Exp[(i-1) Log[2.]]", Row[{"E.g. ", Table[{i, rescale[i]}, {i, 0, 4}]}]}]]; normLog[n_] := 1 + Log[n]/Log[2.]; normf[t_] := normLog[f[t]]; Print@Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Rescaled plot", AspectRatio -> 1]; ndf = D[normf[t], t]; x = 0.8; m = ndf /. t -> x; y = normf[x]; c = y - m x; x2 = x - 0.18; y2 = m x2 + c; x3 = x + 0.18; y3 = m x3 + c; newticks = {#, rescale[#]Round@rescale[#]} & /@ Range[6]; Print@Show[Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Plot with tangent", AspectRatio -> 1], Graphics[Arrow[{{x2, y2}, {x, y}, {x3, y3}}]], FrameTicks -> {Automatic, newticks}];  Here is a method using scaling. The tangent is drawn at x = 0.8. f[t_] := (1 - t)^(-0.5); Print@LogPlot[f[t], {t, 0, 1}, PlotRange -> {{0, 1}, {0.66, 20}}, Frame -> True, PlotLabel -> "Original plot", AspectRatio -> 1]; rescale[i_] := Exp[(i - 1) Log[2.]]; Print[Column[{"Rescaling function: Exp[(i-1) Log[2.]]", Row[{"E.g. ", Table[{i, rescale[i]}, {i, 0, 4}]}]}]]; normLog[n_] := 1 + Log[n]/Log[2.]; normf[t_] := normLog[f[t]]; Print@Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Rescaled plot", AspectRatio -> 1]; ndf = D[normf[t], t]; x = 0.8; m = ndf /. t -> x; y = normf[x]; c = y - m x; x2 = x - 0.18; y2 = m x2 + c; x3 = x + 0.18; y3 = m x3 + c; newticks = {#, rescale[#]} & /@ Range[6]; Print@Show[Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Plot with tangent", AspectRatio -> 1], Graphics[Arrow[{{x2, y2}, {x, y}, {x3, y3}}]], FrameTicks -> {Automatic, newticks}];  Here is a method using scaling. The tangent is drawn at x = 0.8. f[t_] := (1 - t)^(-0.5); Print@LogPlot[f[t], {t, 0, 1}, PlotRange -> {{0, 1}, {0.66, 20}}, Frame -> True, PlotLabel -> "Original plot", AspectRatio -> 1]; rescale[i_] := Exp[(i - 1) Log[2.]]; Print[Column[{"Rescaling function: Exp[(i-1) Log[2.]]", Row[{"E.g. ", Table[{i, rescale[i]}, {i, 0, 4}]}]}]]; normLog[n_] := 1 + Log[n]/Log[2.]; normf[t_] := normLog[f[t]]; Print@Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Rescaled plot", AspectRatio -> 1]; ndf = D[normf[t], t]; x = 0.8; m = ndf /. t -> x; y = normf[x]; c = y - m x; x2 = x - 0.18; y2 = m x2 + c; x3 = x + 0.18; y3 = m x3 + c; newticks = {#, Round@rescale[#]} & /@ Range[6]; Print@Show[Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Plot with tangent", AspectRatio -> 1], Graphics[Arrow[{{x2, y2}, {x, y}, {x3, y3}}]], FrameTicks -> {Automatic, newticks}];  2 added 82 characters in body edited Aug 16 '14 at 12:23 Chris Degnen 22.7k22 gold badges3838 silver badges8989 bronze badges Here is a method using scaling. The tangent is drawn at x = 0.8. f[t_] := (1 - t)^(-0.5); Print@LogPlot[f[t], {t, 0, 1}, PlotRange -> {{0, 1}, {0.66, 20}}, Frame -> True, PlotLabel -> "Original plot"];plot", AspectRatio -> 1]; rescale[i_] := Exp[(i - 1) Log[2.]]; Print[Column[{"Rescaling function: Exp[(i-1) Log[2.]]", Row[{"E.g. ", Table[{i, rescale[i]}, {i, 0, 4}]}]}]]; normLog[n_] := 1 + Log[n]/Log[2.]; normf[t_] := normLog[f[t]]; Print@Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Rescaled plot"];plot", AspectRatio -> 1]; ndf = D[normf[t], t]; x = 0.8; m = ndf /. t -> x; y = normf[x]; c = y - m x; x2 = x - 0.2;18; y2 = m x2 + c; x3 = x + 0.2;18; y3 = m x3 + c; newticks = {#, rescale[#]} & /@ Range[6]; Print@Show[Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Plot with tangent"]tangent", Graphics[Line[ AspectRatio -> 1], Graphics[Arrow[{{x2, y2}, {x, y}, {x3, y3}}]], FrameTicks -> {Automatic, newticks}];  Here is a method using scaling. The tangent is drawn at x = 0.8. f[t_] := (1 - t)^(-0.5); Print@LogPlot[f[t], {t, 0, 1}, PlotRange -> {{0, 1}, {0.66, 20}}, Frame -> True, PlotLabel -> "Original plot"]; rescale[i_] := Exp[(i - 1) Log[2.]]; Print[Column[{"Rescaling function: Exp[(i-1) Log[2.]]", Row[{"E.g. ", Table[{i, rescale[i]}, {i, 0, 4}]}]}]]; normLog[n_] := 1 + Log[n]/Log[2.]; normf[t_] := normLog[f[t]]; Print@Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Rescaled plot"]; ndf = D[normf[t], t]; x = 0.8; m = ndf /. t -> x; y = normf[x]; c = y - m x; x2 = x - 0.2; y2 = m x2 + c; x3 = x + 0.2; y3 = m x3 + c; newticks = {#, rescale[#]} & /@ Range[6]; Print@Show[Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Plot with tangent"], Graphics[Line[{{x2, y2}, {x, y}, {x3, y3}}]], FrameTicks -> {Automatic, newticks}];  Here is a method using scaling. The tangent is drawn at x = 0.8. f[t_] := (1 - t)^(-0.5); Print@LogPlot[f[t], {t, 0, 1}, PlotRange -> {{0, 1}, {0.66, 20}}, Frame -> True, PlotLabel -> "Original plot", AspectRatio -> 1]; rescale[i_] := Exp[(i - 1) Log[2.]]; Print[Column[{"Rescaling function: Exp[(i-1) Log[2.]]", Row[{"E.g. ", Table[{i, rescale[i]}, {i, 0, 4}]}]}]]; normLog[n_] := 1 + Log[n]/Log[2.]; normf[t_] := normLog[f[t]]; Print@Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Rescaled plot", AspectRatio -> 1]; ndf = D[normf[t], t]; x = 0.8; m = ndf /. t -> x; y = normf[x]; c = y - m x; x2 = x - 0.18; y2 = m x2 + c; x3 = x + 0.18; y3 = m x3 + c; newticks = {#, rescale[#]} & /@ Range[6]; Print@Show[Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Plot with tangent", AspectRatio -> 1], Graphics[Arrow[{{x2, y2}, {x, y}, {x3, y3}}]], FrameTicks -> {Automatic, newticks}];  1 answered Aug 16 '14 at 12:17 Chris Degnen 22.7k22 gold badges3838 silver badges8989 bronze badges Here is a method using scaling. The tangent is drawn at x = 0.8. f[t_] := (1 - t)^(-0.5); Print@LogPlot[f[t], {t, 0, 1}, PlotRange -> {{0, 1}, {0.66, 20}}, Frame -> True, PlotLabel -> "Original plot"]; rescale[i_] := Exp[(i - 1) Log[2.]]; Print[Column[{"Rescaling function: Exp[(i-1) Log[2.]]", Row[{"E.g. ", Table[{i, rescale[i]}, {i, 0, 4}]}]}]]; normLog[n_] := 1 + Log[n]/Log[2.]; normf[t_] := normLog[f[t]]; Print@Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Rescaled plot"]; ndf = D[normf[t], t]; x = 0.8; m = ndf /. t -> x; y = normf[x]; c = y - m x; x2 = x - 0.2; y2 = m x2 + c; x3 = x + 0.2; y3 = m x3 + c; newticks = {#, rescale[#]} & /@ Range[6]; Print@Show[Plot[normf[t], {t, 0, 1}, PlotRange -> {{0, 1}, normLog /@ {0.66, 20}}, Frame -> True, PlotLabel -> "Plot with tangent"], Graphics[Line[{{x2, y2}, {x, y}, {x3, y3}}]], FrameTicks -> {Automatic, newticks}];