
Ich möchte jede Biegung sehr sanft gestalten. Das einzige Kriterium zum Zeichnen der Kurve ist, dass sie bei (1,2.5) beginnt und bei (1,2.75) endet. Keine Kurvengleichung angegeben. Das ist mir nicht gelungen. Bitte helfen Sie.
\documentclass[tikz,border=13mm]{standalone}
\usetikzlibrary{arrows.meta,decorations.markings}
\usetikzlibrary{calc}
%\pgfplotsset{ticks=none}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{axis}[name=MyAxis,grid=major,grid style=dotted , xmin=0, xmax=12, ymin=0, ymax=5,
xlabel=$x\rightarrow$, ylabel={$y \rightarrow$},
%xtick = {0,.3479,1}, xticklabels = {,$x_1$,},
%ytick = {0,0.015,0.0414,.4}, yticklabels={,,,}, %yticklabels=\empty,
scale=1, restrict y to domain=0:5,clip=false]
\draw (1,0) -- (1,3);
\addplot[color=red,smooth,thick,-] coordinates {
(1,2.5) (.3,2) (1,.8) (5,0.5) (7,.75) (7.75,1.15) (8.25,1.75) (8,2.5) (7,3) (5,3.2) (3.75,3.15) (2.5,3) (1,2.75)};
\end{axis}
\end{tikzpicture}
\end{document}
Antwort1
\draw[color=red] plot [smooth cycle]
Für ein besseres Ergebnis könnten Sie :
\documentclass[tikz,border=13mm]{standalone}
\usetikzlibrary{arrows.meta,decorations.markings}
\usetikzlibrary{calc}
%\pgfplotsset{ticks=none}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[>=stealth,declare function={f(\x)=(10.5-\x)/(10.5);}]
\begin{axis}[name=MyAxis,grid=major,grid style=dotted , xmin=0, xmax=12, ymin=0, ymax=5,
xlabel=$x\rightarrow$, ylabel={$y \rightarrow$},
%xtick = {0,.3479,1}, xticklabels = {,$x_1$,},
%ytick = {0,0.015,0.0414,.4}, yticklabels={,,,}, %yticklabels=\empty,
scale=1, restrict y to domain=0:5,clip=false]
\draw (1,0) -- (1,3);
\draw[color=red] plot [smooth cycle] coordinates {
(1,2.5) (.3,2) (1,.8) (5,0.5) (7,.75) (7.75,1.15) (8.25,1.75) (8,2.5) (7,3) (5,3.2) (3.75,3.15) (2.5,3) (1,2.75)};
\end{axis}
\end{tikzpicture}
\end{document}
Das Ergebnis beim Ausführen in Gummi ist:
Antwort2
Verwendung von hobby
:
\documentclass[tikz,border=13mm]{standalone}
\usetikzlibrary{arrows.meta,decorations.markings}
\usetikzlibrary{calc, hobby}
%\pgfplotsset{ticks=none}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}[use Hobby shortcut]
\begin{axis}[name=MyAxis,grid=major,grid style=dotted , xmin=0, xmax=12, ymin=0, ymax=5,
xlabel=$x\rightarrow$, ylabel={$y \rightarrow$},
%xtick = {0,.3479,1}, xticklabels = {,$x_1$,},
%ytick = {0,0.015,0.0414,.4}, yticklabels={,,,}, %yticklabels=\empty,
scale=1, restrict y to domain=0:5,clip=false]
\draw (1,0) -- (1,3);
\draw[red, thick] (1,2.5)..(.3,2)..(1,.8)..(5,0.5)..(7,.75)..(7.75,1.15)..(8.25,1.75)..(8,2.5)..(7,3)..(5,3.2)..(3.75,3.15)..(2.5,3)..(1,2.75);
\end{axis}
\end{tikzpicture}
\end{document}
Bearbeiten:
Habe den Code bereinigt und die Kurve als Diagramm erstellt – \addplot
mit weniger Punkten.
\documentclass[tikz,border=1cm]{standalone}
\usetikzlibrary{hobby}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[grid=major, grid style=dotted, xmin=0, xmax=12, ymin=0, ymax=5, xlabel=$x\rightarrow$, ylabel={$y \rightarrow$}]
\draw (1,0) -- (1,3);
\addplot[red, thick, smooth, hobby] coordinates {(1,2.5) (.3,2) (1,.8) (5,0.5) (7,.75) (8.25,1.75) (5,3.2) (1,2.75)};
\end{axis}
\end{tikzpicture}
\end{document}