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

Code:
\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