Moin zusammen,

mein Ziel ist eine Grafik zu erzeugen, die ähnlich aussieht wie in der folgenden Abbildung. alt text

Der Unterschied besteht darin, dass ich andere Werte/ Punkte habe. Daher hier mein Latex Code:

Öffne in Overleaf
 \usepackage{tikz}
 \usepackage{pgfplots}
 \begin{tikzpicture} 
 \begin{axis} 
[
axis x line*=middle,
axis y line*=middle,
title = Verlauf der Kapitalmarktfunktion,
xlabel =$i$,
ylabel = $K$,
legend style = {anchor = north west, at = {(1.0,0.5)}},
height=10cm, width=12.5cm, grid=major, 
]
\addplot+[smooth] coordinates {
      (-1 ,10000)
      (0 ,864)
      (1.08 ,-195.04)
    };
\end{axis}
\end{tikzpicture}

Ich brauche also noch die Bezeichnung am Graphen, diese gestrichelte Linie und die Angabe des Nullpunktes. Ich möchte gerne noch die Beschriftung der Wertbereiche auf den Achsen entfernen und nur die Werte der Schnittstellen angeben.

Wie mache ich das? Ich habe schon einiges rumprobiert mit Beispielen, aber es passt irgendwie nicht so richtig.

Danke und Gruß Timo

Nachtrag: Ein bisschen habe ich bereits hinbekommen. Mein Code sieht nun so aus:

Öffne in Overleaf
  \begin{tikzpicture} [scale=1.25]
    \begin{axis} 
    [
    axis lines=middle,
    title = Verlauf der Kapitalmarktfunktion,
    xlabel =$i$,
    ylabel = $K$,
     xtick={0},
     ytick={0},
     xlabel=$i$, xlabel style={at={(1,0)}, anchor=north},
     ylabel=$C$, ylabel style={at={(0,1)}, anchor=east},
     samples=100,/tikz/smooth,no marks,
     scaled ticks=false
    ]
    \addplot+[smooth] coordinates {
          (-1 ,10000)
          (0 ,864)
          (8 ,-195.04)
        };

    \end{axis}
    \end{tikzpicture}

Es fehlen doch die Schnittstellen mit den Achsen. Die zusätzliche Textangabe und dieser gestrichelte Bereich.

alt text

Nachtrag 2:

Okay ich bin nun noch einen Schritt weiter. Linie passen, Skalierung passt. Einen Teil der Beschriftung habe ich irgendwie hinbekommen. Auch einen Punkt habe ich hinzugefügt. Nur leider ist er trotz richtiger Koordinaten an der falschen Stelle ausgegeben. Wo liegt dort mein Denkfehler? Der Punkt ist im Koordinatensystem unten links zu sehen. Er gehört aber eigentlich auf die C Achse beim Schnitt mit dem Graphen.

Öffne in Overleaf
\begin{tikzpicture} [scale=1.25, every node/.style={font=\sffamily}]
\begin{axis} 
[
axis lines=middle,
title = Verlauf der Kapitalmarktfunktion,
xlabel =$i$,
ylabel = $K$,
 xtick={0},
 ytick={0},
 ymin=-750,
 ymax= 5000,
 xlabel=$i$, xlabel style={at={(1,0)}, anchor=north},
 ylabel=$C$, ylabel style={at={(0,1)}, anchor=east},
% scaled ticks=false
]
\addplot+[smooth,no marks] coordinates {
      (-1 ,10000)
      (0 ,1750)
      (3 ,0)
      (10 ,-200)
    }
    node[pos=0.7, right, font=\tiny](endofplotsquare){$C_A(i)$}{};
\addplot [dotted, smooth,no marks,] coordinates {
(-1, 10000)
(-1, -300)
};    
\addplot [dotted, smooth,no marks] coordinates {
(-1, -300)
(10,-300)
};
\draw [red, fill=yellow]  (3,0) circle (2pt) node[right] {$S$};
\end{axis}
\end{tikzpicture}

alt text

gefragt 28 Jun, 04:32

roter_admin's gravatar image

roter_admin
364
Akzeptiert: 100%

bearbeitet 28 Jun, 10:03


Du hast ja das Meiste selber hinbekommen. Das Problem ist im Wesentlichen, dass Du mit ymax=5000 einen Grossteil des Plots wegschneidest. Unter der Annahme, dass das Absicht ist, hätte ich folgenden Vorschlag.

Öffne in Overleaf
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture} [scale=1.25, every node/.style={font=\sffamily}]
\begin{axis} 
[
axis lines=middle,
title = Verlauf der Kapitalmarktfunktion,
xlabel =$i$,
ylabel = $K$,
 xtick={0},
 ytick={0},
 ymin=-750,
 ymax= 5000,
 xlabel=$i$, xlabel style={at={(1,0)}, anchor=north},
 ylabel=$C$, ylabel style={at={(0,1)}, anchor=east},
% scaled ticks=false
]
\addplot+[smooth,no marks] coordinates {
      (-1 ,10000)
      (0 ,1750)
      (3 ,0)
      (10 ,-200)
    }
    node[pos=0.53,fill=white, right, font=\tiny](endofplotsquare){$C_A(i)$};
\addplot [dotted, no marks,] coordinates {
(-1, 10000)
(-1, -300)
};    
\addplot [dotted, no marks] coordinates {
(-1, -300)
(10,-300)
} node[pos=0.1,fill=white, right, font=\tiny](endofplotsquare){$-1.700$};
\draw [red, fill=yellow]  (3,0) circle (2pt) node[right] {$S$};
\draw [red, fill=yellow]  (0 ,1750) circle (2pt) node[right] {$456$};
\end{axis}
\end{tikzpicture}
\end{document}

alt text

Kommentare:

  1. Für Plots, die lediglich Geraden sind, ist smooth unnötig.
  2. Du kannst die Schnittpunkte des Plots mit den Achsen auch mit intersections bestimmen. Hier war das unnötig, weil die Koordinaten schon in Deiner Liste waren. Falls Du allerdings die Koordinaten extra deswegen so gewählt hast, könnte das relevant sein.
  3. Und es ist immer hilfreich, einen kompletten Code hochzuladen, d.h. einen, der mit \documentclass anfängt und mit \end{document} aufhört.
Permanenter link

beantwortet 28 Jun, 13:33

Murmeltier's gravatar image

Murmeltier
1.2k64

Man müsste noch irgendwas tun, dass die Achsenbeschriftungen (i und C) nicht einen halben Kilometer weit weg sind. Das war glaube ich ein Thema für sich bzw. auch nicht ganz trivial. Muss den Thread nochmal finden.

(28 Jun, 17:30) cis

@cis Ich stimme im Prinzip überein, aber ich habe das font=\tiny einfach aus der Vorgabe übernommen unter der Annahme, dass es beabsichtigt ist.

(28 Jun, 17:49) Murmeltier

Vielen Danke, dass passt bisher super. Zu den Fragen: zu 1.) smooth war Copy+Paste ist an der Stelle wirklich überflüssig zu 2.) intersection gucke ich mir bei Gelegenheit mal an, danke für den Tip. Richtig, ich hatte die Koordinaten extra so gewählt, damit ich notfalls einfach mit Punkten, dass markieren kann was sein muss. zu 3.) Ich werde beim nächsten Mal mehr Code einbringen. Bei manchen Seiten ist es schnell zu viel, manchmal zu wenig. Das richtige Verständnis für ein Minimalbeispiel habe ich noch nicht.

(28 Jun, 18:04) roter_admin

Ja die Achsenbeschriftung könnte näher ran, aber stört mich jetzt nicht so. Das font=tiny wollte ich um die Texte an den Nodes kleiner zu machen. Gibt es da eine bessere Methode?

(28 Jun, 18:05) roter_admin
1

@roter_admin Wenn Du die Schrift so klein haben magst, ist font=\tiny genau richtig. Wie das am Schluss genau aussieht, hängt sowieso von der \documentclass ab. Ich persönlich würde node[above right] {$S$}; (oder nur above) nehmen, damit das S nicht auf der Kurve liegt, das ist jedoch Geschmackssache.

(28 Jun, 18:40) Murmeltier

Hast Recht sieht besser aus...

(29 Jun, 04:32) roter_admin
Ergebnis 5 von 6 Alle anzeigen
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×11
×8

Frage gestellt: 28 Jun, 04:32

Frage wurde angeschaut: 174 Mal

Zuletzt aktualisiert: 29 Jun, 04:32