Anzeige:
Ergebnis 1 bis 13 von 13

Thema: Balkendiagramme: Zwei Balken eine mittige Beschriftung

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.11.2008
    Beiträge
    66

    Balkendiagramme: Zwei Balken eine mittige Beschriftung

    Hallo,
    jetzt wird es etwas kniffliger. Ich benötige ein Balkendiagramm in welchem zwei Balken sich eine mittige Beschriftung teilen.
    Ähnlich dem hier hinterlegten Beispiel, welches ich allerdings mit Gimp so halbwegs zusammen gestöpselt habe.
    Wichtig scheinen mir die Ticks zwischen den beiden zusammen gehörenden Balken, so dass es eindeutig ist, dass die zentrierte Beschriftung für beide gilt.
    VIelen Dank,
    Gruß,
    Alex

  2. #2
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    schau dir mal pgfplot an.
    in der anleitung auf seite 30, das sieht fast so aus wie du es haben möchtest.

    gruß
    Mein Ball ist umgefallen

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.11.2008
    Beiträge
    66
    Bin von pgfplots weg, da es meinen Anforderungen nicht genügt.
    Es ist, scheinbar, nicht möglich alphanumerische Beschriftungen in pgfplots zu verwenden. Die würde ich allerdings benötigen, daher nehme ich pstricks.

  4. #4
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Dr.Wackelzahn Beitrag anzeigen
    jetzt wird es etwas kniffliger. Ich benötige ein Balkendiagramm in welchem zwei Balken sich eine mittige Beschriftung teilen.
    Ähnlich dem hier hinterlegten Beispiel, welches ich allerdings mit Gimp so halbwegs zusammen gestöpselt habe.
    Wichtig scheinen mir die Ticks zwischen den beiden zusammen gehörenden Balken, so dass es eindeutig ist, dass die zentrierte Beschriftung für beide gilt.
    dann änderst du bei der x-Achse einfach das dx=...

    Herbert

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.11.2008
    Beiträge
    66
    EDIT:

    Funktioniert leider nicht, da es nur für das erste Balkenpaar funktioniert, dann ist wieder ein Versatz drin (siehe Anhang).
    Im Bild sollten die Ticks an die Stelle der Mauszeiger und nicht auf Höhe der Hand.

    Und wie bekomme ich dann noch die mittige, ggf. zweizeilige Beschriftung unter diesen Tick?
    Geändert von Dr.Wackelzahn (06-12-2008 um 22:30 Uhr)

  6. #6
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Dr.Wackelzahn Beitrag anzeigen
    EDIT:

    Funktioniert leider nicht, da es nur für das erste Balkenpaar funktioniert, dann ist wieder ein Versatz drin (siehe Anhang).
    Im Bild sollten die Ticks an die Stelle der Mauszeiger und nicht auf Höhe der Hand.

    Und wie bekomme ich dann noch die mittige, ggf. zweizeilige Beschriftung unter diesen Tick?
    Code:
    \documentclass[a4paper,11pt]{article}
    
    \usepackage{pstricks-add}
    
    \begin{document}
    \begin{pspicture}(5,5)
    \psaxes[dx=1.5cm,labels=y,ticksize=0 -5pt]{->}(5,5)
    \rput[r]{90}(1.5,-0.2){\parbox{3cm}{Hier steht\\ ganz viel Text,
     der so lang sein kann, wie er will}}
    \uput[-90]{90}(4.5,0){\parbox{3cm}{Eins\\zwei drei und noch vier}}
    \end{pspicture}
    
    \end{document}
    zwei Möglichkeiten.

    Herbert

  7. #7
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Dr.Wackelzahn Beitrag anzeigen
    EDIT:

    Funktioniert leider nicht, da es nur für das erste Balkenpaar funktioniert, dann ist wieder ein Versatz drin (siehe Anhang).
    Im Bild sollten die Ticks an die Stelle der Mauszeiger und nicht auf Höhe der Hand.

    Und wie bekomme ich dann noch die mittige, ggf. zweizeilige Beschriftung unter diesen Tick?
    Ich habe keine Kristallkugel, um genau zu wissen, was _du_ eigentlich gemacht hast.

    Herbert

  8. #8
    Registrierter Benutzer
    Registriert seit
    23.11.2008
    Beiträge
    66
    Entschuldigung, ich hatte den Code vergessen:

    Code:
    \documentclass[12pt]{article}
    \usepackage{fp-basic,pstricks-add,pst-eps,xcolor}
    \usepackage[dvips,margin=0.25cm,paperwidth=15.25cm,paperheight=11.25cm]{geometry}
    \usepackage[ngerman]{babel}
    \newcommand{\setvar}[2]{
        \newcommand{#1}{#2}
        }
    \pagestyle{empty}
    
    \input{Farben}
    
    \begin{document}
    
    \def\nameone{fehlende Primärstabilität,keine Integration,peri Wucherung}
    \def\dataone{20,80,60}
    \def\datatwo{40,100,0}
    
    \newcounter{yoneVal}
    \newcounter{ytwoVal}
    \newcounter{xoneVal}
    \newcounter{xtwoVal}
    
    \setvar{\xtitel}{Grund Pantation}
    \setvar{\xTitelPosition}{30}
    \setvar{\ytitel}{Anzahl der Implantationen}
    \setvar{\yTitelPosition}{1}
    \setvar{\xmin}{0}
    \setvar{\ymin}{0}
    \setvar{\xmax}{6}
    \setvar{\ymax}{100}
    \setvar{\schritt}{10}
    \setvar{\breite}{12.5}
    \setvar{\hoehe}{8}
    \setvar{\strichbreite}{5}
    \setvar{\beschriftungswinkel}{55}
    \setvar{\yRaster}{5}
    
    % Interne Verarbeitung
    \setvar{\yabstandeinheit}{\yabstand cm}
    \setvar{\strichlaenge}{-\strichbreite}
    \FPdiv{\balkenbreite}{\breite}{\xmax}
    \FPdiv{\balkenbreite}{\balkenbreite}{2}
    \setvar{\breiteeinheit}{\breite cm}
    \setvar{\hoeheeinheit}{\hoehe cm}
    \FPadd{\ymax}{\ymax}{\schritt}
    %\FPsub{\ydiff}{\ymax}{\ymin}
    \FPdiv{\yabstand}{1}{\ymax}
    \FPmul{\yabstand}{\yabstand}{\hoehe}
    \FPmul{\yabstand}{\yabstand}{\schritt}
    \FPadd{\xmax}{\xmax}{\balkenbreite}
    \setvar{\xTitelPos}{-\xTitelPosition}
    \setvar{\yTitelPos}{-\yTitelPosition}
    
    \psset{llx=-1.6cm,lly=-0.6cm,
        yAxisLabel=\ytitel,
        yAxisLabelPos={\yTitelPos,c},
        xAxisLabel=\xtitel,
        xAxisLabelPos={c,\xTitelPos}}
    \begin{psgraph}[Dy=\schritt,dy=\yabstandeinheit,Dx=1,dx=1.5,
        yticksize=\strichlaenge pt 0pt,
        xticksize=0 -5pt,xsubticks=0,
        ysubticks=\yRaster,labels=y](\xmin,\ymin)(\xmax,\ymax){\breiteeinheit}{\hoeheeinheit}
    % Hilfslinien
    \psaxes[labels=none,
        ticks=y,
        yticksize=0 \xmax,
        ysubticks=5,
        subticksize=1,
        tickcolor=black!20,
        subtickcolor=black!30,
        subticklinestyle=dotted,
        Dy=\schritt,
        dy=\yabstandeinheit](\xmax,\ymax)
    \psforeach{\nA}{\dataone}{
      \stepcounter{xoneVal}
      \psline[linewidth=\balkenbreite,linecolor=dia1](\thexoneVal,0)(\thexoneVal,\nA)
      \uput*[90]{\beschriftungswinkel}(\thexoneVal,\nA){\small\nA}
      \stepcounter{xoneVal}}
    \psforeach{\nB}{\datatwo}{
      \stepcounter{xtwoVal}
      \stepcounter{xtwoVal}
      \psline[linewidth=\balkenbreite,linecolor=dia2](\thextwoVal,0)(\thextwoVal,\nB)
      \uput*[90]{\beschriftungswinkel}(\thextwoVal,\nB){\small\nB}}
    \psforeach{\nD}{\nameone}{
      \stepcounter{yoneVal}
      \stepcounter{yoneVal}
      \rput[c]{0}(\theyoneVal,-10){\parbox{3cm}{\small\nD}}}
    % Legend
      \psframe[linecolor=black,fillstyle=solid](4.7,109)(7.05,96)
      \psline[linecolor=dia1,linewidth=7pt](4.8,105)(5.1,105)
      \uput[0](5.1,105){augmentiert}
      \psline[linecolor=dia2,linewidth=7pt](4.8,100)(5.1,100)
      \uput[0](5.1,100){nicht augmentiert}
    \end{psgraph}
    \end{document}
    So sieht das Ergebnis derzeit aus.

  9. #9
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Dr.Wackelzahn Beitrag anzeigen
    Entschuldigung, ich hatte den Code vergessen:

    [CODE]\psset{llx=-1.6cm,lly=-0.6cm,
    yAxisLabel=\ytitel,
    yAxisLabelPos={\yTitelPos,c},
    xAxisLabel=\xtitel,
    xAxisLabelPos={c,\xTitelPos}}
    \begin{psgraph}[Dy=\schritt,dy=\yabstandeinheit,Dx=1,dx=1.5\psxunit,
    yticksize=\strichlaenge pt 0pt,
    Genau weiß ich hier aber nicht, wo bei 5 Balken die Ticks hin sollen.
    Wenn das die einzige Abbildung ist, dann mach einfach
    \psforeach{\nA}{1.5,3,4.5}{\psline(\nA,0)(\nA,-0.2)}
    und fertig.

    Herbert

  10. #10
    Registrierter Benutzer
    Registriert seit
    23.11.2008
    Beiträge
    66
    Hallo,
    es sind doch 6 Balken. Schlecht von mir war, dass der letzte einen Wert von 0 hat.
    Es werden noch mehr mit noch mehr Balken.
    Später sollen auch noch Diagramme mit 3-4 zusammengefassten Balken entstehen.
    Daher wäre eine universellere Lösung günstiger.
    Vielen Dank!

  11. #11
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Dr.Wackelzahn Beitrag anzeigen
    Hallo,
    es sind doch 6 Balken. Schlecht von mir war, dass der letzte einen Wert von 0 hat.
    Es werden noch mehr mit noch mehr Balken.
    Später sollen auch noch Diagramme mit 3-4 zusammengefassten Balken entstehen.
    Daher wäre eine universellere Lösung günstiger.
    mit 1.5\psxunit klappte es jedenfalls bei mir.

    Herbert

  12. #12
    Registrierter Benutzer
    Registriert seit
    23.11.2008
    Beiträge
    66
    Ja, die Striche schon, aber der Text schaut doch komisch aus.
    Kann man den noch irgendwie zentrieren und bei allen drei Beschriftungen die zweite Zeile erzwingen?
    Da würde es einheitlicher aussehen.

    Ich habe mal ein Bild angehängt wie es jetzt aussieht...

  13. #13
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Dr.Wackelzahn Beitrag anzeigen
    Ja, die Striche schon, aber der Text schaut doch komisch aus.
    Kann man den noch irgendwie zentrieren und bei allen drei Beschriftungen die zweite Zeile erzwingen?
    Da würde es einheitlicher aussehen.

    Ich habe mal ein Bild angehängt wie es jetzt aussieht...
    dann amch einfach

    Code:
    \uput[-90](..,..){\tabular{@{} l @{}} Zeile 1\\Teile2\endtabular}
    Alternativ \rput, je nachdem, was du nimmst.

    Trotzdem würde ich den Text senkrecht setzen.

    Herbert

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •