tikz: Beschriftung soll Kurve folgen
Hallo,
das Thema "Text biegen" bringt mich auf eine andere Frage:
Ich möchte, dass im tikzpicture eine Beschriftung dem Funktionsgraphen folgt, der mittels \datavisualization erstellt wurde.
Im Minimalbesipiel soll der Text der Hyperbel folgen und nicht einfach linear "drüberschreiben". Ist sowas möglich?
Im `texdoc pgfmanual' ist in Kap 24.3 zwar der decoration-Befehl beschrieben, aber ich schaffe es nicht, diesen mit meiner "Funktion" zu verknüpfen.
Vielen Dank
Manfred
Code:
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\usetikzlibrary{plotmarks}
\makeatother
\usepackage{babel}
\begin{document}
\begin{tikzpicture}
\datavisualization [school book axes,visualize as smooth line/.list={a,b},
a={style ={red,very thick},label in data={text=$\leftarrow$ isotherme Kompression, node style=sloped, when=x is 2}},
all axes={grid},
x axis={length=10cm,
ticks={none},
label= $V$},
y axis={length=5cm,
ticks={many},
label= $p/10^5$},
data/format=function
]
data [set=a] {
var x : interval [1:5.1] step 0.1;
func y = 5*(1/\value x);
}
data [set=b] {
var x : interval [1:5.1] step 0.1;
func y = 5*((1/\value x)^(1.4));
} ;
\end{tikzpicture}
Lösung (fast perfekt) gefunden!
Hallo,
vielen herzlichen Dank für Deinen Beitrag. Deine Idee, den draw-Befehl zu nutzen hat mich auf die (fast perfekte) Lösung gebracht
Code:
\draw[variable=\x, domain=1:5,decorate, decoration={text along path, text={${\leftarrow}$ isotherme Kompression},raise=1ex,text align={center} }] plot ({\x},{5/(\x)});
Siehe auch komplettes Beispiel unten.
Einziges Problem: Die \x Werte entsprechen nicht dem x-Werten in der \datavisualization- Umgebung. Ich muss exakt den Maßstab 1 Einheit = 1 cm verwenden (oder umrechnen).
Daher meine nächste Frage:
Wie kann ich die \x Werte im draw-Befehl gleich den x-Werten in der \datavisualization setzen? Ich weiß, es gibt den "visualization cs" Befehl. Aber wie setze ich den hier ein?
Code:
\documentclass[english]{article}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{url}
\usepackage{tikz}
\usetikzlibrary{datavisualization}
\usetikzlibrary{datavisualization.formats.functions}
\usetikzlibrary{plotmarks}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.text}
\usepackage{babel}
\begin{document}
\begin{tikzpicture}
\datavisualization [school book axes,visualize as smooth line/.list={a,b},
all axes={grid},
x axis={length=5cm,
ticks={many},
label= $V$},
y axis={length=5cm,
ticks={many},
label= $p/10^5$},
data/format=function
]
data [set=a] {
var x : interval [1:5.1] step 0.1;
func y = (5/\value x);
}
data [set=b] {
var x : interval [1:5.1] step 0.1;
func y = 5*((1/\value x)^(1.4));
};
\draw[variable=\x, domain=1:5,decorate, decoration={text along path, text={${\leftarrow}$ isotherme Kompression},raise=1ex,text align={center} }] plot ({\x},{5/(\x)});
\end{tikzpicture}
\end{document}