6

I haven't been able to find anything on this after searching for a while, so I apologize if this is a duplicate.

I need to replicate the following image:

enter image description here

Here's what I've got so far:

enter image description here

\documentclass{minimal}

%%for graphs
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{fillbetween}
%%end graph code

    \begin{document}
    \begin{tikzpicture}[scale=1]
    \begin{axis}[
            axis x line=bottom,%need to change to bottom to put 0 in 
            axis y line=middle,
            x label style={at={(axis cs: 2.6, -0.12)},anchor=south},%rotate = degrees number can be used to rotate the label
            y label style={at={(axis cs:0, 2.5)},anchor=south},
            xtick={0, 1, 2}, %or {listofvalues, , },
            ytick={0, 1, 2},
            yticklabels={$0$, $1$, $2$},
            xticklabels={$0$, $1$, $2$},
            ymin=0,
            ymax=2.5,
            xmin=0,
            xmax=2.5,
            ylabel=$y$, 
            xlabel=$x$,
            area style,
            ]
        %thick lines
        \draw[draw = black, ultra thick] (axis cs: 0, 0) -- (axis cs: 0, 2);
        \addplot+[draw = black, ultra thick, name path = upper, domain=0:2] {2-x};
        \addplot+[draw = black, ultra thick, name path = lower, domain=0:2] {0};  
        %shading    
        \addplot[gray!40] fill between[of = upper and lower];
    \end{axis}
    \end{tikzpicture}
    \end{document}

It doesn't matter to me where the axis labels are - the main problem is trying to get the x + y = 2 on the line.

How can I get the x + y = 2 on the line?

1
8

One way would be to place a node:

\node [rotate=-45, above] at (axis cs: 1,1) {$x + y = 2$};

which requires the use of the axis cs coordinate system and a rotate=.

Alternatively, you can place the node as part of the \addplot using the sloped option:

    \addplot+[draw = black, ultra thick, name path = upper, domain=0:2] {2-x} 
          node [midway, sloped, above, red] {$x + y = 2$};

enter image description here

Notes:


Code: Manual Node:

\documentclass{article}

%%for graphs
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{fillbetween}
%%end graph code

    \begin{document}
    \begin{tikzpicture}[scale=1]
    \begin{axis}[
            axis x line=bottom,%need to change to bottom to put 0 in 
            axis y line=middle,
            x label style={at={(axis cs: 2.6, -0.12)},anchor=south},%rotate = degrees number can be used to rotate the label
            y label style={at={(axis cs:0, 2.5)},anchor=south},
            xtick={0, 1, 2}, %or {listofvalues, , },
            ytick={0, 1, 2},
            yticklabels={$0$, $1$, $2$},
            xticklabels={$0$, $1$, $2$},
            ymin=0,
            ymax=2.5,
            xmin=0,
            xmax=2.5,
            ylabel=$y$, 
            xlabel=$x$,
            area style,
            ]
        %thick lines
        \draw[draw = black, ultra thick] (axis cs: 0, 0) -- (axis cs: 0, 2);
        \addplot+[draw = black, ultra thick, name path = upper, domain=0:2] {2-x};
        \addplot+[draw = black, ultra thick, name path = lower, domain=0:2] {0};  
        %shading    
        \addplot[gray!40] fill between[of = upper and lower];
        \node [rotate=-45, above] at (axis cs: 1,1) {$x + y = 2$};
    \end{axis}
    \end{tikzpicture}
    \end{document}

Code: Node as part of \addplot:

\documentclass{article}

%%for graphs
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{fillbetween}
%%end graph code

    \begin{document}
    \begin{tikzpicture}[scale=1]
    \begin{axis}[
            axis x line=bottom,%need to change to bottom to put 0 in 
            axis y line=middle,
            x label style={at={(axis cs: 2.6, -0.12)},anchor=south},%rotate = degrees number can be used to rotate the label
            y label style={at={(axis cs:0, 2.5)},anchor=south},
            xtick={0, 1, 2}, %or {listofvalues, , },
            ytick={0, 1, 2},
            yticklabels={$0$, $1$, $2$},
            xticklabels={$0$, $1$, $2$},
            ymin=0,
            ymax=2.5,
            xmin=0,
            xmax=2.5,
            ylabel=$y$, 
            xlabel=$x$,
            area style,
            ]
        %thick lines
        \draw[draw = black, ultra thick] (axis cs: 0, 0) -- (axis cs: 0, 2);
        \addplot+[draw = black, ultra thick, name path = upper, domain=0:2] {2-x} node [midway, sloped, above, red] {$x + y = 2$};
        \addplot+[draw = black, ultra thick, name path = lower, domain=0:2] {0};  
        %shading    
        \addplot[gray!40] fill between[of = upper and lower];
    \end{axis}
    \end{tikzpicture}
    \end{document}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.