::
Pier24″ post=101379Salve a tutti,
Sto cercando di fare un grafico in cui mi serve che y fino ad una certa x, ad esempio 274, valga 0. Dopo quella x, quindi ad esempio 274, inizia ad assumere valori positivi pari (x-274). Sostanzialmente mi serve una funzione che prenda il massimo tra x-274 e 0 e che mi mostri una retta orizzantale sull’asse x fino a 274 e poi con inclinazione positiva da 274 in poi. Sto provando molti funzione tramite \addplot ma mi da sempre errore. Vi scrivo la “bozza” del codice che sto usando:
\begin{tikzpicture}
\begin{axis}[
axis lines=middle,
xmin=0, xmax=500,
ymin=0, ymax=250, ylabel=$S_t-K$, xlabel=$S_t$]
\addplot{max(x-274,0)};
\end{axis}
\end{tikzpicture}
Grazie in anticipo per l’aiuto
Ciao.
Ti manca di specificare il dominio:
`\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=0:500,
no markers,
axis lines=middle,
xmin=0, xmax=500,
ymin=0, ymax=250,
ylabel=$S_t-K$, xlabel=$S_t$]
\addplot[blue,line width = 1pt]{x-274};
\draw[blue,line width = 1pt] (axis cs:0,0)–(axis cs:274,0);
\end{axis}
\end{tikzpicture}
\end{document}`
Ci sono molti modi per fare quello che desideri. Nel codice precedente il disegno della funzione lineare è associato a un normale comando grafico di TikZ che sfrutta il sistema di coordinate del grafico creato da pgfplots.
Noterai che la linea orizzontale è più sottile… questo è dovuto al fatto che la tela del grafico taglia ogni cosa perciò la linea orizzontale appare solo per la metà superiore dello spessore.
La cosa si risolve con la corretta opzione di pgfplots oppure cambiando strategia.
Ecco un secondo modo:
`\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
clip=false,
domain=0:500,
no markers,
axis lines=middle,
xmin=0, xmax=500,
ymin=0, ymax=250,
ylabel=$S_t-K$, xlabel=$S_t$]
\addplot [blue,line width = 1pt]
table {
0 0
274 0
500 226
};
\end{axis}
\end{tikzpicture}
\end{document}`
Per disegnare due linee potresti anche non scomodare \addplot e usare solamente linee e allora sfrutti pgfplots solo per disegnare gli assi e gli altri elementi della tela come le etichette:
`\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
clip=false,
axis lines=middle,
xmin=0, xmax=500,
ymin=0, ymax=250,
ylabel=$S_t-K$, xlabel=$S_t$]
\draw[blue,line width = 1pt]
(axis cs: 0, 0) —
(axis cs:274, 0) —
(axis cs:500, 226);
\end{axis}
\end{tikzpicture}
\end{document}`
R.
Ps. Metti il codice tra tag code