pgfplots: Minimum einer Funktion markieren

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: pgfplots: Minimum einer Funktion markieren

von thor » Do 6. Mär 2014, 18:47

War ganz einfach

Es fehlte lediglich ein
\node[pin=90:\tiny\sffamily optim. Bestellmenge: 7/565.72,draw=black] at (axis cs:7,565.2) {};
und schon hat man es in der Mitte und nicht an den Achsen, sehr schön!

Das Sahnehäubchen wäre jetzt noch, wenn man diese Werte nicht händisch eintragen müsste, sonder pgfplots automatisch die Werte ermitteln könnte, also P(x,y): (7,565.72) und diese dann an den entsprechenen Stellen einsetzen würde :D
\draw[dashed] (axis cs: 0, 565.72) -- (axis cs:7, 565.72);
\draw[dashed] (axis cs: 7, 0) -- (axis cs:7, 565.72);
\node[pin=90:\tiny\sffamily optim. Bestellmenge: 7/565.72,draw=black] at (axis cs:7,565.2) {};
Ist natürlich purer Luxus aber es wäre einfach toll!

Herzliche Grüße
Thorsten Grothe

von Münzi » Do 6. Mär 2014, 17:42

Ich weiß nicht genau wie du das meinst. Aber ich vermute mal, du solltest im Manual nach (axis cs: ... ) schauen. Damit kannst du die node frei im Diagramm an den entsprechenden Koordinaten platzieren. Zusätzlich bietet sich noch xshift bzw. yshift an um die node zu verschieben.

von thor » Do 6. Mär 2014, 17:38

Ja das meinte ich, vielen Dank, etwas Finetuning noch, da ich das yopt bzw xopt gerne als node in der Mitte hätte, am besten mit Koordinaten, etwa so:

xopt/yopt (7,565.72)

Das wär dan optimal, ich such nochmal ein wenig im Manual!

Danke nochmal, Ihr seit klasse!

vg
Thorsten

von Münzi » Do 6. Mär 2014, 14:03

Meinst du sowas?
\documentclass[% 
fontsize=11pt, 
]{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc} 
\usepackage{pgfplots} 

\begin{document} 
\begin{tikzpicture}[scale=1.2] 
    \begin{axis}[ 
        style=thick, 
        xlabel=Bestellhaeufigkeit, 
        ylabel=Gesamtkosten, 
        minor tick num=1, 
        grid=both, 
        ymin=0,
        %xmin=500, xmax=10000, 
        %ymin=500, ymax=3000, 
        extra x ticks={7},
        extra x tick labels={$x_\textrm{opt}$}, 
%        extra y ticks={565.72},
%        extra y tick labels={$y_\textrm{opt}$},
        ] 
        \addplot+[smooth,green!60!black,mark options={green!60!black}] 
        coordinates{ 
          (1,40) 
          (2,80) 
          (3,120) 
          (4,160) 
          (5,200) 
          (6,240) 
          (7,280) 
          (8,320) 
          (9,360) 
          (10,400) 
          (11,440) 
          (12,480) 
        }; 
        \addlegendentry{Bestellkosten} 

        \addplot+[smooth, cyan, mark=*,mark options={cyan}] 
        coordinates{ 
          (1,2000) 
          (2,1000) 
          (3,666.67) 
          (4,500) 
          (5,400) 
          (6,333.34) 
          (7,285.72) 
          (8,250) 
          (9,222.22) 
          (10,200) 
          (11,181.82) 
          (12,166.67) 
        }; 
        \addlegendentry{Lagerkosten} 

        \addplot+[smooth,red!70!white,mark options={red!70!white}] 
        coordinates { 
          (1,2040) 
          (2,1080) 
          (3,786.67) 
          (4,660) 
          (5,600) 
          (6,573.34) 
          (7,565.72) % Minimum kennzeichnen 
          (8,570) 
          (9,582.22) 
          (10,600) 
          (11,621.82) 
          (12,646.67) 
        }; 
        \addlegendentry{Gesamtkosten} 
        \draw[dashed] (axis cs: 0, 565.72) -- (axis cs:7, 565.72);
        \draw[dashed] (axis cs: 7, 0) -- (axis cs:7, 565.72);
    \end{axis} 
\end{tikzpicture} 
\end{document}

pgfplots: Minimum einer Funktion markieren

von thor » Do 6. Mär 2014, 12:15

Hallo,

ich hätte da mal wieder ein kleines Problemchen. Ich habe hier drei Funktionen mit pgfplots gezeichnet Lagerkosten/Bestellkosten/Gesamtkosten. Nun möchte ich gerne, dass der Punkt (x,y) (7, 565.72) mittels einer Gerade zur x und zur y-Achse gekennzeichnet wird, da hier das Minimum der Gesamtkosten liegt. Ich habe Euch ein Bild hochgeladen, das dieses verdeutlicht (xopt, am besten mit Koordinaten)

Aber ich weiß beim besten Willen nicht, wie man das hinbekommt, kann mir jemand helfen?

Hier das MBB
\documentclass[%
fontsize=11pt,
]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}[scale=1.2]
    \begin{axis}[
        style=thick, 
        xlabel=Bestellhäufigkeit,
        ylabel=Gesamtkosten,
        minor tick num=1,
        grid=both,
        %xmin=500, xmax=10000,
        %ymin=500, ymax=3000,
        ]
        \addplot+[smooth,green!60!black,mark options={green!60!black}]
        coordinates{
          (1,40)
          (2,80)
          (3,120)
          (4,160)
          (5,200)
          (6,240)
          (7,280)
          (8,320)
          (9,360)
          (10,400)
          (11,440)
          (12,480)
        };
        \addlegendentry{Bestellkosten}

        \addplot+[smooth, cyan, mark=*,mark options={cyan}]
        coordinates{
          (1,2000)
          (2,1000)
          (3,666.67)
          (4,500)
          (5,400)
          (6,333.34)
          (7,285.72)
          (8,250)
          (9,222.22)
          (10,200)
          (11,181.82)
          (12,166.67)
        };
        \addlegendentry{Lagerkosten}

        \addplot+[smooth,red!70!white,mark options={red!70!white}]
        coordinates {
          (1,2040)
          (2,1080)
          (3,786.67)
          (4,660)
          (5,600)
          (6,573.34)
          (7,565.72) % Minimum kennzeichnen
          (8,570)
          (9,582.22)
          (10,600)
          (11,621.82)
          (12,646.67)
        };
        \addlegendentry{Gesamtkosten}
    \end{axis}
\end{tikzpicture}
\end{document}
Vielen Dank schon einmal!

P.S. ich sehe gerade, eine Datei kann nicht angehängt werden, ich weiß nicht wieso: Upload Error: Kann das Attachment ./files/tikzmbb_174.jpeg (32 kb groß) nicht hochladen. :( :( :( Ich hoffe, Ihr versteht mich auch so!!

Gruß
Thorsten

Nach oben