nodes bei ybar interval (PGF)

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: nodes bei ybar interval (PGF)

von elmar.a » Do 24. Okt 2013, 11:26

Wow, Elke, das sieht super aus!
Vielen Dank, der domain-Befehl hat mir gefehlt!! Fuer den Fall von unterschiedlich grossen Intervallen nicht unbedingt die Loesung, aber in diesem Fall hat's mir sehr geholfen!

Scheint, als gaebe es noch immer viel, viel, viel zu lernen, was PGF angeht (und auch die Posts hier im Forum---sry fuer den 'Rueckfrage'-Fehler!)

von esdd » Do 24. Okt 2013, 10:55

Hier ist ein Vorschlag, der ausnutzt, dass alle Intervalle die Breite 5 haben:
\documentclass{scrartcl} 

\usepackage{pgfplots} 
\pgfplotsset{compat=newest} 

\usepackage{pgfplotstable}

\pgfplotstableread{
  Range_from  Frequency_hekla1980  Frequency_hekla2000  Total_frequency 
  0    0   0   0 
  5    1   0   1 
  10   0   0   0 
  15   1   0   1 
  20   0   0   0 
  25   0   0   0 
  30   1   0   1 
  35   1   0   1 
  40   0   0   0 
  45   1   0   1 
  50   2   1   3 
  55   1   2   3 
  60   5   9   14 
  65   25  11  36 
  70   19  43  62 
  75   1   0   1 
  80   0   0   0 
  85   0   0   0 
  90   0   0   0 
  95   1   0   1 
  100  0   0   0
}\data

\begin{document} 

\begin{tikzpicture} 
\begin{axis}[ width=\linewidth,
  ybar interval, 
  xtick=data, 
  xticklabel interval boundaries, 
  x tick label style={rotate=90,anchor=east},domain=0:100 
] 

  \addplot table[x={Range_from},y={Total_frequency}] \data;

  \addplot[only marks,mark=none, nodes near coords,
    x filter/.code={\pgfmathadd{#1}{2.5}},restrict x to domain=0:100]
    table[x={Range_from},y={Total_frequency}] \data;
\end{axis}

\end{tikzpicture} 

\end{document}
Gruß
Elke

PS: Schau dir mal bei dem Fragezeichen neben „Status aktuell halten“ an, was „Rückfrage“ bedeutet.

von elmar.a » Do 24. Okt 2013, 10:11

esdd hat geschrieben:Currently nodes near coords does not work satisfactorily for ybar interval or xbar interval,
sorry.
Vielen Dank fuer die schnelle Antwort, esdd!
Das muss ich ueberlesen haben... gilt das fuer die Position als auch fuer die 'ueberfluessige' node am rechten Rand des plots?
Ist es ggf. moeglich die nodes manuell zu beeinflussen?


(edit: kein Wunder, hatte noch das 1.8-manual aufm Rechner...)

von esdd » Do 24. Okt 2013, 10:06

Zitat aus der Doku zu pgfplots, Version 1.9:
Currently nodes near coords does not work satisfactorily for ybar interval or xbar interval,
sorry.

nodes bei ybar interval (PGF)

von elmar.a » Do 24. Okt 2013, 08:59

Guten Morgen,

ich versuche mich gerade im erstellen eines Balkendiagramms (ybar interval) mit PGF. Mein code sieht momentan wie folgt aus:
\documentclass{scrartcl}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
		ybar interval,
		xtick=data,
		xticklabel interval boundaries,
		x tick label style=
			{rotate=90,anchor=east},
		nodes near coords align={vertical},
		nodes near coords,
		]

	\addplot+[] plot table[x={Range_from},y={Total_frequency}] {
	Range_from	Frequency_hekla1980	Frequency_hekla2000	Total_frequency
	0	0	0	0
	5	1	0	1
	10	0	0	0
	15	1	0	1
	20	0	0	0
	25	0	0	0
	30	1	0	1
	35	1	0	1
	40	0	0	0
	45	1	0	1
	50	2	1	3
	55	1	2	3
	60	5	9	14
	65	25	11	36
	70	19	43	62
	75	1	0	1
	80	0	0	0
	85	0	0	0
	90	0	0	0
	95	1	0	1
	100
	};

\end{axis}
\end{tikzpicture}

\end{document}
Das Diagramm sieht auch soweit schon so aus, wie ich's gern haette. Verwundert bin ich allerdings
1) ueber die Position der nodes (nicht zentriert ueber dem jeweiligen Balken; habe einige align-Befehle ausprobiert, leider den richtigen aber nicht gefunden?!) und
2) ueber die letzte node (die 1 am rechten Rand des Intervalls 95-100). Laut Manual sollte diese eigentlich nicht auftauchen?!
Consequently, there is one coordinate too much: the last coordinate will only be used to determine the interval width; its y value doesn't in uence the bar appearance. (PGF Manual, S. 66)
Ueber Loesungsansetze, Ideen und Anmerkungen waere ich sehr dankbar!

Viele Gruesse,
elmar.a

Nach oben