Hallo liebe LaTeX-Freunde,

ich versuche einen mittels \addplot coordinates dargestellten Graph in drei Farben zu unterteilen in Abhängigkeit des abgebildeten Intervalls, was mir leider nicht gelingen möchte. Und zwar sieht mein Graph beispielsweise wie folgt aus:

alt text

Open in writeLaTeX
\documentclass[margin=2mm,tikz]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
  \begin{axis}[
    axis equal image,
    axis lines=middle,
    xmin=-2, xmax=15.5, % Axis limits
    ymin=-2, ymax=11.5,
    xtick={2,7,12},
    ytick=\empty,
  ]
  \addplot[no marks, smooth, samples=500,]
                    coordinates{(1,3) (2,3.5)(7,7)(8,1)(10,4.5)(11,3.5) (12,7.5) (13,8)};
  %  \addplot[no marks, smooth, samples=500,red, restrict x to domain=2:7]
%                   coordinates{(1,3) (2,3.5)(7,7)(8,1)(10,4.5)(11,3.5) (12,7.5) (13,8)};
   % \addplot[no marks, smooth, samples=500,blue, restrict x to domain=7:12]
%               coordinates{(1,3) (2,3.5)(7,7)(8,1)(10,4.5)(11,3.5) (12,7.5) (13,8)};

    \draw[dashed](axis cs:2,0)--(axis cs:2,10);
    \draw[dashed](ax![alt text][2]is cs:7,0)--(axis cs:7,10);
    \draw[dashed](axis cs:12,0)--(axis cs:12,10);
  \end{axis}
\end{tikzpicture}
\end{document}

Im Intervall von 2 bis 7 soll nun mein Graph die Farbe Rot und im Intervall von 7 bis 12 die Farbe Blau annehmen. Meine Idee war es mittels restrict x to domain einfach die einzelnen Teilstücke des Graphen in gewünschter Farbe übereinander abzubilden. Das funktioniert aber nicht wie gewünscht, da dann die smooth Funktion an den Randpunkten der Intervalle nicht mehr beachtet wird und das Ergebnis so aussieht: alt text

Hat hier jemand eine Idee die mich zum Ziel führt?

Dieser Frage ist "Community-Wiki" markiert.

gefragt 22 Aug '14, 12:41

Ross's gravatar image

Ross
355522
Akzeptiert: 86%


Okay, hab eine Lösung gefunden:

Open in writeLaTeX
\documentclass[margin=2mm,tikz]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{intersections}
\usepgfplotslibrary{fillbetween}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    axis equal image,
    axis lines=middle,
    xmin=-2, xmax=15.5, % Axis limits
    ymin=-2, ymax=11.5,
    xtick={2,7,12},
    ytick=\empty,
  ]
  \addplot[no marks, smooth, samples=500,name path=f]
                    coordinates{(1,3) (2,3.5)(7,7)(8,1)(10,4.5)(11,3.5) (12,7.5) (13,8)};
    \draw[dashed, name path=i2](axis cs:2,0)--(axis cs:2,10);
    \draw[dashed, name path=i7](axis cs:7,0)--(axis cs:7,10);
    \draw[dashed, name path=i12](axis cs:12,0)--(axis cs:12,10);
      \path [
        name path=f2,
        intersection segments={
            of=i2 and f ,
            sequence={B1}
        }];
      \path [
      draw,blue,
        name path=2to7,
        intersection segments={
            of=f2 and i7 ,
            sequence={A0}
        }];
      \path [
        name path=f7,
        intersection segments={
            of=f2 and i7 ,
            sequence={A1}
        }];
      \path [
      draw,red,
        name path=7to12,
        intersection segments={
            of=f7 and i12 ,
            sequence={A0}
        }];
  \end{axis}
\end{tikzpicture}

\end{document}

alt text

Permanenter link

beantwortet 22 Aug '14, 18:58

Ross's gravatar image

Ross
355522

@Ross Danke für das Posten der selbst gefundenen Lösung! Schön, dass es geklappt hat. Ich dachte zunächst an eine Möglichkeit mit Definiton von point meta oder einer passend eingestellten colormap. Ein anderes Mal dann vielleicht. :-)

(23 Aug '14, 10:14) stefan ♦♦

Wie lässt sich der Graph einer Funktion in unterschiedliche Farben in MATLAB einteilen?

Permanenter link

beantwortet 30 Jan '15, 11:29

Matlab1's gravatar image

Matlab1
1

@Matlab1 Wir sprechen hier über LaTeX, bei Matlab könntest Du auf gomatlab.de fragen.

(30 Jan '15, 14:45) stefan ♦♦
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

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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:

×492
×160

Frage gestellt: 22 Aug '14, 12:41

Frage wurde angeschaut: 2,542 Mal

Zuletzt aktualisiert: 30 Jan '15, 14:45