So zeichnen Sie eine komplizierte glatte Kurve

So zeichnen Sie eine komplizierte glatte Kurve

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: Bildbeschreibung hier eingeben

Ohne die Linie wäre die Kurve: Bildbeschreibung hier eingeben

Originalcode gepostet von user1942348 ohne die Zeile: Bildbeschreibung hier eingeben

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}

Glatte Kurve

Bearbeiten:

Habe den Code bereinigt und die Kurve als Diagramm erstellt – \addplotmit 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}

Fast dieselbe glatte Kurve

verwandte Informationen