% based on Ch. 2 of "Systematic Design of Anlog Integrated Circuits: % Using Pre-Computed Lookup Tables" by Paul G.A. Jespers and Boris Murmann \begin{axis}[ view={50}{30} , ylabel=$q$ , xlabel=$\frac{V_{\mathrm{GS}}-V_{\mathrm{TH}}}{nV_{\mathrm{T}}}$ , zlabel=$\mathrm{IC}\equal\nicefrac{I_{\mathrm{D}}}{I_{\mathrm{S}}}$ , ymin=0.01 , ymax=100 , ymode=log , xmin=-12 , xmax=40 , zmin=0.01 , zmax=100 , zmode=log , width =14cm , height=14cm , x dir = reverse , grid=both , xtick={-10,0,...,40} , every tick label/.append style={font=\footnotesize} , extra y ticks={0.2,5} , extra y tick labels={0.2,5} , extra z ticks={2} , extra z tick labels={2} , legend style={nodes={scale=0.7, transform shape}} ] \addplot3[densely dotted,semithick, forget plot] coordinates{ ( 40 , 0.2, 0.24) ( -3.209, 0.2, 0.24) ( -3.209, 100, 0.24) }; \addplot3[densely dotted,semithick, forget plot] coordinates{ ( -3.209, 0.2 , 0.24) ( -3.209, 0.2, 0.01) }; \addplot3[densely dotted,semithick, forget plot] coordinates{ ( 40 , 5, 30) ( 9.609, 5, 30) ( 9.609, 100, 30) }; \addplot3[densely dotted,semithick, forget plot] coordinates{ ( 9.609, 5 , 30) ( 9.609, 5, 0.01) }; \addplot3[ mark=none , domain=0.01:0.2 , samples=100 , smooth , thick , blue , samples y = 0 ] ({2*(x-1)+ln(x)},{x},{x^2+x});\addlegendentry{weak (W.I.)} \addplot3[ mark=none , domain=0.2:5 , samples=100 , smooth , thick , green , samples y = 0 ] ({2*(x-1)+ln(x)},{x},{x^2+x});\addlegendentry{moderate (M.I.)} \addplot3[ mark=none , domain=5:19.5 , samples=100 , smooth , thick , red , samples y = 0 ] ({2*(x-1)+ln(x)},{x},{x^2+x});\addlegendentry{strong (S.I.)} \addplot3[ mark=none , domain=0.01:0.2 , samples=100 , smooth , samples y = 0 , densely dashed , blue , forget plot ] ({2*(x-1)+ln(x)},{x},{0.01}); \addplot3[ mark=none , domain=0.2:5 , samples=100 , smooth , samples y = 0 , densely dashed , green , forget plot ] ({2*(x-1)+ln(x)},{x},{0.01}); \addplot3[ mark=none , domain=5:19.5 , samples=100 , smooth , samples y = 0 , densely dashed , red , forget plot ] ({2*(x-1)+ln(x)},{x},{0.01}); \addplot3[ mark=none , domain=0.01:0.2 , samples=100 , smooth , samples y = 0 , densely dashed , blue , forget plot ] ({40},{x},{x^2+x}); \addplot3[ mark=none , domain=0.2:5 , samples=100 , smooth , samples y = 0 , densely dashed , green , forget plot ] ({40},{x},{x^2+x}); \addplot3[ mark=none , domain=5:19.5 , samples=100 , smooth , samples y = 0 , densely dashed , red , forget plot ] ({40},{x},{x^2+x}); \addplot3[ mark=none , domain=0.01:0.2 , samples=200 , smooth , samples y = 0 , densely dashed , blue , forget plot ] ({2*(x-1)+ln(x)},{100},{x^2+x}); \addplot3[ mark=none , domain=0.2:5 , samples=200 , smooth , samples y = 0 , densely dashed , green , forget plot ] ({2*(x-1)+ln(x)},{100},{x^2+x}); \addplot3[ mark=none , domain=5:19.5 , samples=200 , smooth , samples y = 0 , densely dashed , red , forget plot ] ({2*(x-1)+ln(x)},{100},{x^2+x}); \end{axis}