pgfplots: How to draw a tangent graph below two others?

Multi tool use
Multi tool use












3















Assumed I want to draw three simple graphs based on the following illustration:



Screenshot of the desired state





How can I plot those three graphs? I've tried to create something like this:



Minimum Working Example (MWE):



documentclass{standalone}
usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
end{axis}
end{tikzpicture}
end{document}




Screenshot of the current state:



Screenshot of the current state





Description of the issue:



However, I don't get the point on how to figure out the function of the third graph as well as how to clip the graphs in x and y direction to align them centered in the plot. It is not necessary to be completely precise, the accuracy of my upper template will be fine enough.



How to do that?










share|improve this question

























  • Well, and the formula of the third graph is? Please explain your issue better ...

    – Kurt
    1 hour ago








  • 2





    @close-voter: Please explain in a comment your reason for voting to close!

    – Kurt
    1 hour ago











  • I accept the Kurt's comment.

    – Sebastiano
    49 mins ago
















3















Assumed I want to draw three simple graphs based on the following illustration:



Screenshot of the desired state





How can I plot those three graphs? I've tried to create something like this:



Minimum Working Example (MWE):



documentclass{standalone}
usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
end{axis}
end{tikzpicture}
end{document}




Screenshot of the current state:



Screenshot of the current state





Description of the issue:



However, I don't get the point on how to figure out the function of the third graph as well as how to clip the graphs in x and y direction to align them centered in the plot. It is not necessary to be completely precise, the accuracy of my upper template will be fine enough.



How to do that?










share|improve this question

























  • Well, and the formula of the third graph is? Please explain your issue better ...

    – Kurt
    1 hour ago








  • 2





    @close-voter: Please explain in a comment your reason for voting to close!

    – Kurt
    1 hour ago











  • I accept the Kurt's comment.

    – Sebastiano
    49 mins ago














3












3








3








Assumed I want to draw three simple graphs based on the following illustration:



Screenshot of the desired state





How can I plot those three graphs? I've tried to create something like this:



Minimum Working Example (MWE):



documentclass{standalone}
usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
end{axis}
end{tikzpicture}
end{document}




Screenshot of the current state:



Screenshot of the current state





Description of the issue:



However, I don't get the point on how to figure out the function of the third graph as well as how to clip the graphs in x and y direction to align them centered in the plot. It is not necessary to be completely precise, the accuracy of my upper template will be fine enough.



How to do that?










share|improve this question
















Assumed I want to draw three simple graphs based on the following illustration:



Screenshot of the desired state





How can I plot those three graphs? I've tried to create something like this:



Minimum Working Example (MWE):



documentclass{standalone}
usepackage{pgfplots}

begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
end{axis}
end{tikzpicture}
end{document}




Screenshot of the current state:



Screenshot of the current state





Description of the issue:



However, I don't get the point on how to figure out the function of the third graph as well as how to clip the graphs in x and y direction to align them centered in the plot. It is not necessary to be completely precise, the accuracy of my upper template will be fine enough.



How to do that?







tikz-pgf pgfplots plot graphs polynomials






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 1 hour ago







Dave

















asked 1 hour ago









DaveDave

1,108619




1,108619













  • Well, and the formula of the third graph is? Please explain your issue better ...

    – Kurt
    1 hour ago








  • 2





    @close-voter: Please explain in a comment your reason for voting to close!

    – Kurt
    1 hour ago











  • I accept the Kurt's comment.

    – Sebastiano
    49 mins ago



















  • Well, and the formula of the third graph is? Please explain your issue better ...

    – Kurt
    1 hour ago








  • 2





    @close-voter: Please explain in a comment your reason for voting to close!

    – Kurt
    1 hour ago











  • I accept the Kurt's comment.

    – Sebastiano
    49 mins ago

















Well, and the formula of the third graph is? Please explain your issue better ...

– Kurt
1 hour ago







Well, and the formula of the third graph is? Please explain your issue better ...

– Kurt
1 hour ago






2




2





@close-voter: Please explain in a comment your reason for voting to close!

– Kurt
1 hour ago





@close-voter: Please explain in a comment your reason for voting to close!

– Kurt
1 hour ago













I accept the Kurt's comment.

– Sebastiano
49 mins ago





I accept the Kurt's comment.

– Sebastiano
49 mins ago










2 Answers
2






active

oldest

votes


















3














You can use the function f1*f2/(f1+f2) to get something like what you describe. To make the code a bit clearer I defined the functions f1 and f2.



documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{%
compat=1.12,
/pgf/declare function={f1(x)=exp(3*x);},
/pgf/declare function={f2(x)=-exp(3*x)+20;},
}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {f1(x)};
addplot+[no marks, samples=100] {f2(x)};
addplot+[no marks, samples=100] {f1(x)*f2(x)/(f1(x)+f2(x))};
end{axis}
end{tikzpicture}
end{document}


enter image description here



If you want the function to follow more closely you can use sqrt(f1^2*f2^2/(f1^2+f2^2). Then replace the third plot with



addplot+[no marks, samples=100] {sqrt(f1(x)*f1(x)*f2(x)*f2(x)/(f1(x)*f1(x)+f2(x)*f2(x)))};


to get



enter image description here






share|improve this answer
























  • The lower one looks perfect, thank you very much!!

    – Dave
    15 mins ago



















3














Are you looking for the minimum? (I shifted the plot a bit but you can of course undo the shift.)



documentclass[border=3.14mm,tikz]{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
addplot+[no marks, samples=6,smooth]
{min(exp(3*x),(-exp(3*x)+20))-pi/2};
end{axis}
end{tikzpicture}
end{document}


enter image description here






share|improve this answer
























  • Thank you very much marmot! The user StefanH has also posted a great approach which looks very smooth - I hope you are not disappointed if I choose his option as an answer?

    – Dave
    15 mins ago














Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f482639%2fpgfplots-how-to-draw-a-tangent-graph-below-two-others%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























2 Answers
2






active

oldest

votes








2 Answers
2






active

oldest

votes









active

oldest

votes






active

oldest

votes









3














You can use the function f1*f2/(f1+f2) to get something like what you describe. To make the code a bit clearer I defined the functions f1 and f2.



documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{%
compat=1.12,
/pgf/declare function={f1(x)=exp(3*x);},
/pgf/declare function={f2(x)=-exp(3*x)+20;},
}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {f1(x)};
addplot+[no marks, samples=100] {f2(x)};
addplot+[no marks, samples=100] {f1(x)*f2(x)/(f1(x)+f2(x))};
end{axis}
end{tikzpicture}
end{document}


enter image description here



If you want the function to follow more closely you can use sqrt(f1^2*f2^2/(f1^2+f2^2). Then replace the third plot with



addplot+[no marks, samples=100] {sqrt(f1(x)*f1(x)*f2(x)*f2(x)/(f1(x)*f1(x)+f2(x)*f2(x)))};


to get



enter image description here






share|improve this answer
























  • The lower one looks perfect, thank you very much!!

    – Dave
    15 mins ago
















3














You can use the function f1*f2/(f1+f2) to get something like what you describe. To make the code a bit clearer I defined the functions f1 and f2.



documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{%
compat=1.12,
/pgf/declare function={f1(x)=exp(3*x);},
/pgf/declare function={f2(x)=-exp(3*x)+20;},
}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {f1(x)};
addplot+[no marks, samples=100] {f2(x)};
addplot+[no marks, samples=100] {f1(x)*f2(x)/(f1(x)+f2(x))};
end{axis}
end{tikzpicture}
end{document}


enter image description here



If you want the function to follow more closely you can use sqrt(f1^2*f2^2/(f1^2+f2^2). Then replace the third plot with



addplot+[no marks, samples=100] {sqrt(f1(x)*f1(x)*f2(x)*f2(x)/(f1(x)*f1(x)+f2(x)*f2(x)))};


to get



enter image description here






share|improve this answer
























  • The lower one looks perfect, thank you very much!!

    – Dave
    15 mins ago














3












3








3







You can use the function f1*f2/(f1+f2) to get something like what you describe. To make the code a bit clearer I defined the functions f1 and f2.



documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{%
compat=1.12,
/pgf/declare function={f1(x)=exp(3*x);},
/pgf/declare function={f2(x)=-exp(3*x)+20;},
}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {f1(x)};
addplot+[no marks, samples=100] {f2(x)};
addplot+[no marks, samples=100] {f1(x)*f2(x)/(f1(x)+f2(x))};
end{axis}
end{tikzpicture}
end{document}


enter image description here



If you want the function to follow more closely you can use sqrt(f1^2*f2^2/(f1^2+f2^2). Then replace the third plot with



addplot+[no marks, samples=100] {sqrt(f1(x)*f1(x)*f2(x)*f2(x)/(f1(x)*f1(x)+f2(x)*f2(x)))};


to get



enter image description here






share|improve this answer













You can use the function f1*f2/(f1+f2) to get something like what you describe. To make the code a bit clearer I defined the functions f1 and f2.



documentclass{standalone}
usepackage{pgfplots}
pgfplotsset{%
compat=1.12,
/pgf/declare function={f1(x)=exp(3*x);},
/pgf/declare function={f2(x)=-exp(3*x)+20;},
}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {f1(x)};
addplot+[no marks, samples=100] {f2(x)};
addplot+[no marks, samples=100] {f1(x)*f2(x)/(f1(x)+f2(x))};
end{axis}
end{tikzpicture}
end{document}


enter image description here



If you want the function to follow more closely you can use sqrt(f1^2*f2^2/(f1^2+f2^2). Then replace the third plot with



addplot+[no marks, samples=100] {sqrt(f1(x)*f1(x)*f2(x)*f2(x)/(f1(x)*f1(x)+f2(x)*f2(x)))};


to get



enter image description here







share|improve this answer












share|improve this answer



share|improve this answer










answered 52 mins ago









StefanHStefanH

10.8k1820




10.8k1820













  • The lower one looks perfect, thank you very much!!

    – Dave
    15 mins ago



















  • The lower one looks perfect, thank you very much!!

    – Dave
    15 mins ago

















The lower one looks perfect, thank you very much!!

– Dave
15 mins ago





The lower one looks perfect, thank you very much!!

– Dave
15 mins ago











3














Are you looking for the minimum? (I shifted the plot a bit but you can of course undo the shift.)



documentclass[border=3.14mm,tikz]{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
addplot+[no marks, samples=6,smooth]
{min(exp(3*x),(-exp(3*x)+20))-pi/2};
end{axis}
end{tikzpicture}
end{document}


enter image description here






share|improve this answer
























  • Thank you very much marmot! The user StefanH has also posted a great approach which looks very smooth - I hope you are not disappointed if I choose his option as an answer?

    – Dave
    15 mins ago


















3














Are you looking for the minimum? (I shifted the plot a bit but you can of course undo the shift.)



documentclass[border=3.14mm,tikz]{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
addplot+[no marks, samples=6,smooth]
{min(exp(3*x),(-exp(3*x)+20))-pi/2};
end{axis}
end{tikzpicture}
end{document}


enter image description here






share|improve this answer
























  • Thank you very much marmot! The user StefanH has also posted a great approach which looks very smooth - I hope you are not disappointed if I choose his option as an answer?

    – Dave
    15 mins ago
















3












3








3







Are you looking for the minimum? (I shifted the plot a bit but you can of course undo the shift.)



documentclass[border=3.14mm,tikz]{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
addplot+[no marks, samples=6,smooth]
{min(exp(3*x),(-exp(3*x)+20))-pi/2};
end{axis}
end{tikzpicture}
end{document}


enter image description here






share|improve this answer













Are you looking for the minimum? (I shifted the plot a bit but you can of course undo the shift.)



documentclass[border=3.14mm,tikz]{standalone}
usepackage{pgfplots}
pgfplotsset{compat=1.16}
begin{document}
begin{tikzpicture}
begin{axis}[domain=0:1]
addplot+[no marks, samples=100] {exp(3*x)};
addplot+[no marks, samples=100] {(-exp(3*x)+20)};
addplot+[no marks, samples=6,smooth]
{min(exp(3*x),(-exp(3*x)+20))-pi/2};
end{axis}
end{tikzpicture}
end{document}


enter image description here







share|improve this answer












share|improve this answer



share|improve this answer










answered 1 hour ago









marmotmarmot

113k5145275




113k5145275













  • Thank you very much marmot! The user StefanH has also posted a great approach which looks very smooth - I hope you are not disappointed if I choose his option as an answer?

    – Dave
    15 mins ago





















  • Thank you very much marmot! The user StefanH has also posted a great approach which looks very smooth - I hope you are not disappointed if I choose his option as an answer?

    – Dave
    15 mins ago



















Thank you very much marmot! The user StefanH has also posted a great approach which looks very smooth - I hope you are not disappointed if I choose his option as an answer?

– Dave
15 mins ago







Thank you very much marmot! The user StefanH has also posted a great approach which looks very smooth - I hope you are not disappointed if I choose his option as an answer?

– Dave
15 mins ago




















draft saved

draft discarded




















































Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f482639%2fpgfplots-how-to-draw-a-tangent-graph-below-two-others%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







r,DyG0SNWlTmsy7W RA2HU,AGBtfLuYwjX3fErlO7riZ2xtEL7l1qB Wf,wm4Srry O,uWa4R1 ST9vAVdH Q7O2R
itbQz h,LteqUjQNktX646wMULYycxOqjWkttjQ9GHyqY,yVCQr

Popular posts from this blog

Running commands remotely through an RDP connection

José Alencar

Santo António de Lisboa