Hobbykomiker
21-09-2015, 11:05
Hallöchen,
ich habe ein kleines Problem, bzw. hätte gerne eine saubere Lösung, anstellen meiner funktionierenden Workarounds.
Ich fange mal mit dem Minimalbeispiel an und beschreibe die Aufgabe im Anschluss
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}
\begin{document}
\pgfplotstableread{
F P
125 20
250 25
500 30
1000 25
2000 20
4000 5
8000 5
}\myTable
\begin{tikzpicture}[]
\begin{semilogxaxis}[
height=9cm,
width=14cm,
ybar,
xtick=data,
log ticks with fixed point,
x tick label style={rotate=90},
ymin=0,
bar shift=0
]
\addplot [color=black,fill=red] %
table [x=F,y=P,restrict expr to domain={rawx}{100:3000}]{\myTable};
\addplot [color=black,fill=white] %
table [x=F,y=P,restrict expr to domain={rawx}{3000:10000}]{\myTable};
\end{semilogxaxis}
\end{tikzpicture}
\end{document}
Im Wesentlichen möchte ich ein Säulendiagramm, bei dem ich ab einen definierten x-Wert (hier: 3000) das Aussehen ändere.
Bisher versuche ich das Diagramm zweimal mit jeweils unterschiedlichen Formatierungen zu erzeugen. Das hat leider zur Folge, dass die
x-Achsenbeschriftung nur für den ersten Plot erzeugt wird und ich bekomme es irgendwie nicht hin, dass der zweite Teil ebenfalls
beschriftet wird.
Meine Workarounds: (zumindest die, die ich erwähnenswert finde)
Vorgabe alle xticks durch xticklabel(s). Für die eigentlich geplante Anwendung ist das viel zu unflexibel
Den Definitionsbereich der ersten Kurve durchziehen (d.h. ersetze '100:3000' durch '100:10000') und den zweiten Teil drüber "malen". Nicht sauber aus meiner Sicht, aber aktuell für mich brauchbar.
Dennoch wäre ich an einer saubereren Lösung interessiert. Eventuell gibt es auch einen bessren Ansatz.
Hat jemand eine Idee?
Danke schon mal im Voraus,
Thorsten
ich habe ein kleines Problem, bzw. hätte gerne eine saubere Lösung, anstellen meiner funktionierenden Workarounds.
Ich fange mal mit dem Minimalbeispiel an und beschreibe die Aufgabe im Anschluss
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}
\begin{document}
\pgfplotstableread{
F P
125 20
250 25
500 30
1000 25
2000 20
4000 5
8000 5
}\myTable
\begin{tikzpicture}[]
\begin{semilogxaxis}[
height=9cm,
width=14cm,
ybar,
xtick=data,
log ticks with fixed point,
x tick label style={rotate=90},
ymin=0,
bar shift=0
]
\addplot [color=black,fill=red] %
table [x=F,y=P,restrict expr to domain={rawx}{100:3000}]{\myTable};
\addplot [color=black,fill=white] %
table [x=F,y=P,restrict expr to domain={rawx}{3000:10000}]{\myTable};
\end{semilogxaxis}
\end{tikzpicture}
\end{document}
Im Wesentlichen möchte ich ein Säulendiagramm, bei dem ich ab einen definierten x-Wert (hier: 3000) das Aussehen ändere.
Bisher versuche ich das Diagramm zweimal mit jeweils unterschiedlichen Formatierungen zu erzeugen. Das hat leider zur Folge, dass die
x-Achsenbeschriftung nur für den ersten Plot erzeugt wird und ich bekomme es irgendwie nicht hin, dass der zweite Teil ebenfalls
beschriftet wird.
Meine Workarounds: (zumindest die, die ich erwähnenswert finde)
Vorgabe alle xticks durch xticklabel(s). Für die eigentlich geplante Anwendung ist das viel zu unflexibel
Den Definitionsbereich der ersten Kurve durchziehen (d.h. ersetze '100:3000' durch '100:10000') und den zweiten Teil drüber "malen". Nicht sauber aus meiner Sicht, aber aktuell für mich brauchbar.
Dennoch wäre ich an einer saubereren Lösung interessiert. Eventuell gibt es auch einen bessren Ansatz.
Hat jemand eine Idee?
Danke schon mal im Voraus,
Thorsten