So, ich möchte das die Funktionen immer von -9 bis 9 gezeichnet werden. Benutze ich dazu domain=-9:9 geht mir die Beschriftung verloren, benutze ich kein domain-Befehl, zeichnet er die Graphen nicht von -9 bis 9. Wahrscheinlich nur ein winziger Gedankenfehler...

Open in writeLaTeX
\documentclass[a4paper, 12pt]{article}
\usepackage[ngerman]{babel}\usepackage[utf8]{inputenc}
\usepackage{amsfonts}\usepackage{amssymb}\usepackage{amsmath}\usepackage{mathtools}
\usepackage{eurosym}\usepackage{wasysym}\usepackage{graphicx}\usepackage{tikz}\usepackage{adjustbox}\usetikzlibrary{shapes.misc} \usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[ cross/.style={draw, cross out,
  minimum size=2*(#1-1pt), inner sep=0pt, outer sep=0pt}, x=.5cm, y=.5cm]
   %Raster zeichnen
   \draw [color=gray!50]  [step=5mm] (-11,-10) grid (11,10);
   % Achsen zeichnen
   \draw[->,thick] (-10,0) -- (10,0) node[right] {$x$};
   \draw[->,thick] (0,-9) -- (0,9) node[above] {$y$};
   % Achsen beschriften
   \foreach \x in {-1,0,1,2,5}
   \draw (\x,-.1) -- (\x,.1) node[below=4pt] {$\scriptstyle\x$};
   \foreach \y in {-1,0,1,2,5}
   \draw (-.1,\y) -- (.1,\y) node[left=4pt] {$\scriptstyle\y$};
    %Funktionen zeichnen:
    \clip(-11,-9) rectangle (11,9);
    \draw[smooth, domain=-9:9] plot (\x, {2*pow(\x-3,2)-3}) node[right] {$p_1$};  
    \draw[smooth] plot (\x, {-1*pow(\x-3,2)+1}) node[right] {$p_2$};  
    \draw[smooth, domain=-9:9] plot (\x, {-0.4*pow(\x+3,2)+1}) node[right] {$p_4$};           
\end{tikzpicture} 
\end{document}

gefragt 14 Apr '14, 14:09

Astrina's gravatar image

Astrina
37181925
Akzeptiert-Rate: 50%

bearbeitet 14 Apr '14, 14:10


Eine weitere Variante ist die Nutzung der Bibliothek intersections. Damit können die Schnittpunkte zwischen dem clip Rechteck und den einzelnen Graphen ermittelt werden. Die Beschriftungen können dann an diesen Schnittpunkten mit below right bzw. above right ausgerichtet werden:

Open in writeLaTeX
\documentclass[margin=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}[x=.5cm, y=.5cm,domain=-9:9,smooth]
   %Raster zeichnen
   \draw [color=gray!50]  [step=5mm] (-11,-10) grid (11,10);
   % Achsen zeichnen
   \draw[->,thick] (-10,0) -- (10,0) node[right] {$x$};
   \draw[->,thick] (0,-9) -- (0,9) node[above] {$y$};
   % Achsen beschriften
   \foreach \c in {-8,-6,...,-2,2,4,...,8}{
     \draw (\c,-.1) -- (\c,.1) node[below=4pt] {$\scriptstyle\c$};
     \draw (-.1,\c) -- (.1,\c) node[left=4pt] {$\scriptstyle\c$};
   }
   \node[below left]{$\scriptstyle0$};
    %Funktionen zeichnen:
    \path[name path=rahmen,clip](-11,-9) rectangle (11,9);
    \draw[name path=p1] plot (\x, {2*pow(\x-3,2)-3});  
    \draw[name path=p2] plot (\x, {-1*pow(\x-3,2)+1});  
    \draw[name path=p4] plot (\x, {-0.4*pow(\x+3,2)+1});  
    %Funktionen beschriften:
    \foreach \p/\o in {1/below right,2/above right,4/above right}
      \path[name intersections={of=rahmen and p\p}]node[\o] at (intersection-2){$p_\p$};
\end{tikzpicture} 
\end{document}

alt text

Da du in dem Beispiel in deiner Frage auch pgfplots lädst, hier noch ein Vorschlag mit diesem Paket:

Open in writeLaTeX
\documentclass[margin=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{document}
\begin{tikzpicture}[domain=-9:9,smooth]
  \begin{axis}[
      width=12cm,height=12cm,
      axis lines=middle,
      domain=-9:9,
      smooth,
      no markers,
      grid,
      xmin=-9,xmax=9,
      tick style=black,
      xtick={-10,-8,...,8},
      xlabel=$x$,
      xlabel style={below, anchor=north east,inner xsep=0pt},
      restrict y to domain=-9:9,
      ymin=-9,ymax=9,
      ytick={-10,-8,...,8},ylabel=$y$,
      ylabel style={above,anchor=north east,inner ysep=0pt},
      samples=100,
    ]
    \addplot {2*pow(\x-3,2)-3}node[pos=1, below right]{$p_1$};
    \addplot{-1*pow(\x-3,2)+1}node[pos=1, above right] {$p_2$};
    \addplot {-0.4*pow(\x+3,2)+1}node[pos=1, above right]{$p_4$};
  \end{axis}
\end{tikzpicture} 
\end{document}

alt text

Permanenter link

beantwortet 14 Apr '14, 19:30

esdd's gravatar image

esdd
17.7k254256
Akzeptiert-Rate: 62%

bearbeitet 14 Apr '14, 21:53

Wow! Das ist echt clever, Schnitt des clip-Rechtecks mit den Funktionen, dazu elegant in for-Schleife! Die pgfplots-Version ist auch lehrreich: wer mehr will, könnte dahin wechseln.

(14 Apr '14, 23:05) Felix

sehr schick, habe die tikz lösung benutzt, finde ich am schicksten für meine Bedürfnisse.

(16 Apr '14, 17:22) Astrina

Hallo!

Ich habe u.a. ein paar kleinere Korrekturen vorgenommen:

€dit: Achso, es ging um die Bennennung der Funktionen. Ich hatte angenommn, es geht um die unvollständigen Achsenbeschriftungen. Das würde ich einfach von Hand machen, wenn man mit clip arbeiten will; wurde ja schon genannt.

alt text

Open in writeLaTeX
\documentclass[margin=5mm]{standalone}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{circuits.ee.IEC}
\usepackage{amsmath, amssymb}

%===========
\begin{document}
%===========
\begin{tikzpicture}[ cross/.style={draw, cross out,
  minimum size=2*(#1-1pt), inner sep=0pt, outer sep=0pt}, 
  x=.5cm, y=.5cm, 
  >=latex,   %Voreinstellung für Pfeilspitzen
  font= \footnotesize
 ]
 %Raster zeichnen
   \draw [color=gray!50]  [step=5mm] (-11,-10) grid (11,10);
   % Achsen zeichnen
   \draw[->,thick] (-10,0) -- (10,0) node[right, below] {\normalsize $x$};
   \draw[->,thick] (0,-9) -- (0,9) node[above, left] {\normalsize $y$};
   % Achsen beschriften
   \foreach \x in {-8,...,-1,1,2,...,9}
   \draw (\x,-.1) -- (\x,.1) node[below=4pt] {$\x$};
   \foreach \y in {-9,...,-1,1,2,...,8}
   \draw (-.1,\y) -- (.1,\y) node[left=4pt] {$\y$};

% Besserer Ursprung
\draw[color=black] (0pt,-5pt) node[right] {$0$};

%Funktionen zeichnen:
     \clip(-11,-9) rectangle (11,9); %Bildbereich
    \draw[blue, smooth, domain=-9:9] plot (\x, {-1*pow(\x-3,2)+1}) node[yshift=13cm] {$$};

     \draw[green, smooth, domain=-9:9] plot (\x, {2*pow(\x-3,2)-3}) node[] {$$};

    \draw[red, smooth, domain=-9:9] plot (\x, {-0.4*pow(\x+3,2)+1}) node[right] {$$};

%Beschriftung
  \node[blue]  at (6,-5) {$p_2$};

\end{tikzpicture} 
%===========
\end{document}
%===========
Permanenter link

beantwortet 14 Apr '14, 14:28

cis's gravatar image

cis
9.5k75452491
Akzeptiert-Rate: 29%

bearbeitet 14 Apr '14, 15:11

Trotzdem danke, es ist immer toll, andere Lösungen zu sehen um diese ggf. benutzen zu können.

(16 Apr '14, 17:23) Astrina

Durch das \clip wird die Beschriftung abgeschnitten, denn durch die Größe der Funktionswerte wird die clip-Box überschritten. Den rechten Teil des Funktionsgraphen sieht man ja schon nicht mehr, und damit auch die Beschriftung rechts daneben nicht.

Lösungsmöglichkeiten:

  • Einschränkung von domain auf den x-Bereich, wo der Graph noch zu sehen ist, evtl. Herantasten
  • Manuelles Platzieren der Beschriftung - zumindest kann man dann noch ein bisschen herumschieben, bis es optimal aussieht

Letzteres z.B. hier mit node at (...):

Open in writeLaTeX
\documentclass[a4paper, 12pt]{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[ cross/.style={draw, cross out,
  minimum size=2*(#1-1pt), inner sep=0pt, outer sep=0pt}, x=.5cm, y=.5cm]
   %Raster zeichnen
   \draw [color=gray!50]  [step=5mm] (-11,-10) grid (11,10);
   % Achsen zeichnen
   \draw[->,thick] (-10,0) -- (10,0) node[right] {$x$};
   \draw[->,thick] (0,-9) -- (0,9) node[above] {$y$};
   % Achsen beschriften
   \foreach \x in {-1,0,1,2,5}
   \draw (\x,-.1) -- (\x,.1) node[below=4pt] {$\scriptstyle\x$};
   \foreach \y in {-1,0,1,2,5}
   \draw (-.1,\y) -- (.1,\y) node[left=4pt] {$\scriptstyle\y$};
    %Funktionen zeichnen:
    \clip(-11,-9) rectangle (11,9);
    \draw[smooth, domain=-9:9] plot (\x, {2*pow(\x-3,2)-3}) node at (6,8) {$p_1$};  
    \draw[smooth] plot (\x, {-1*pow(\x-3,2)+1}) node[right] {$p_2$};  
    \draw[smooth, domain=-9:9] plot (\x, {-0.4*pow(\x+3,2)+1})
        node at (2.5,-8) {$p_4$};           
\end{tikzpicture} 
\end{document}

Plot mit Beschriftung

Permanenter link

beantwortet 14 Apr '14, 14:28

Felix's gravatar image

Felix
1.3k525666
Akzeptiert-Rate: 47%

händisches Platzieren der Benennungen, gemerkt für die Zukunft

(16 Apr '14, 17:23) Astrina

Hier eine Version mit domain-Änderung, wie bei Felix angedeutet

  • die Domain wird rechts soweit einschränkt, dass der Graph mindestens noch komplett sichtbar ist
  • die Domain links ist egal, kann bei -9 bleiben
  • die nach oben aus der \clip-Box hinausrutschende Beschriftung wird mit yshift wieder reingeschoben
Open in writeLaTeX
\documentclass[a4paper, 12pt]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}[ cross/.style={draw, cross out,
  minimum size=2*(#1-1pt), inner sep=0pt, outer sep=0pt}, x=.5cm, y=.5cm]
   %Raster zeichnen
   \draw [color=gray!50]  [step=5mm] (-11,-10) grid (11,10);
   % Achsen zeichnen
   \draw[->,thick] (-10,0) -- (10,0) node[right] {$x$};
   \draw[->,thick] (0,-9) -- (0,9) node[above] {$y$};
   % Achsen beschriften
   \foreach \x in {-1,0,1,2,5}
   \draw (\x,-.1) -- (\x,.1) node[below=4pt] {$\scriptstyle\x$};
   \foreach \y in {-1,0,1,2,5}
   \draw (-.1,\y) -- (.1,\y) node[left=4pt] {$\scriptstyle\y$};
    %Funktionen zeichnen:
    \clip(-11,-9) rectangle (11,9);
    \draw[smooth, domain=-9:5.45] plot (\x, {2*pow(\x-3,2)-3})
      node[right, yshift=-1ex] {$p_1$};
    \draw[smooth] plot (\x, {-1*pow(\x-3,2)+1}) node[right] {$p_2$};
    \draw[smooth, domain=-9:2] plot (\x, {-0.4*pow(\x+3,2)+1})
      node[right, yshift=1ex] {$p_4$};
\end{tikzpicture} 
\end{document}

Plot mit Einschränkung der Domain

Permanenter link

beantwortet 14 Apr '14, 14:42

stefan's gravatar image

stefan ♦♦
18.1k143048
Akzeptiert-Rate: 48%

auch schick, wahnsinn wieviele Möglichkeiten es da gibt, danke

(16 Apr '14, 17:24) Astrina
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×728
×14
×4

gestellte Frage: 14 Apr '14, 14:09

Frage wurde gesehen: 37,631 Mal

zuletzt geändert: 16 Apr '14, 17:24