Hi Christian That works beautifully (see attached example pdf) - thanks!
Cheers Will On Tue, Jan 31, 2012 at 3:38 PM, Christian Feuersaenger <cfeuersaen...@googlemail.com> wrote: > Hi William, > > Am 28.01.2012 17:47, schrieb William Henney: > >> The only thing missing now is some way to take per-point values from a >> data column for the "/pgfplots/nodes near coords align" parameter >> ("above", "below", "left", etc). That would help in avoiding >> collisions between the labels and would allow me to use a larger font >> size. Is it at all possible? > > > Yes, it is - and it is rather simple as well: you can modify your data table > such that it contains a further column 'align'. > Then, you tell pgfplots that the visualization depends on its data -- in the > very same way as you included the 'lambda' column. Once your data table is > modified, you can add the following two lines to make it happen: > > nodes near coords align=\ALIGN, > visualization depends on={value\thisrow{align} \as \ALIGN}, > > Here, the 'value\thisrow{align} \as\ALIGN' means to take the expanded value > of \thisrow{align} verbatim, i.e. without parsing it as a number. Without > the key word 'value', it would have been parsed as number. > > NOTE: you need to change you data table's column name for (M-O)/E : it > should not contain white spaces (since the default column separator is white > space). > > Here is a complete example: > > Cloudy El lambda Model Observed Error M/O (M-O)/E > align > NE_3 Ne3 3869 8.17686723274 10.80 1.4 0.76 -1.87 > below > S_II S2 4070 10.4475816855 8.227 0.979 1.27 2.27 > above > S_II S2 4078 2.99580775427 2.698 0.318 1.11 0.94 > auto > C__2 C2 4267 0.207606269471 0.191 0.051 1.09 0.33 > below > TOTL O3 4363 2.37236800689 2.011 0.207 1.18 1.75 > auto > HE_1 He1 4471 4.65171605379 4.3 0.416 1.08 0.85 auto > FE_3 Fe3 4659 2.60331622015 0.338 0.042 7.70 53.94 > auto > FE_3 Fe3 4702 1.44123467401 0.198 0.052 7.28 23.91 > auto > FE_3 Fe3 4734 0.756129700232 0.117 0.036 6.46 17.75 > auto > FE_3 Fe3 4755 0.47606006097 0.069 0.028 6.90 14.54 > {anchor=south west} > H__1 H1 4861 100.0 100 7.2 1.00 0.00 auto > O__3 O3 4959 85.6877662453 80.94 5.91 1.06 0.80 auto > O__3 O3 5007 257.917681537 232.7 16.2 1.11 1.56 auto > N__2 N2 5755 8.17735206821 5.91 0.65 1.38 3.49 auto > HE_1 He1 5876 14.5187752486 14.48 1.35 1.00 0.03 > auto > O__1 O1 6300 5.4711813156 4.846 0.446 1.13 1.40 auto > S__3 S3 6312 5.1304323418 3.88 0.357 1.32 3.50 auto > H__1 H1 6563 280.747361832 286 21.5 0.98 -0.24 auto > N__2 N2 6584 33.6017794459 33.84 2.54 0.99 -0.09 > auto > HE_1 He1 6678 3.78215599287 3.514 0.316 1.08 0.85 > auto > S_II S2 6731 0.637016569893 0.747 0.067 0.85 -1.64 > auto > AR_3 Ar3 7135 26.2075170797 17.01 1.48 1.54 6.21 > auto > > Note that even the complicated choice {anchor=south west} is possible here. > This should allow all freedom that you need. > > \documentclass{article} > \usepackage{fullpage} > \usepackage{txfonts} > \usepackage{pgfplots} > > \newcommand\Ion[2]{\ensuremath{\mathrm{#1\,\scriptstyle #2}}} > \newcounter{ionstage} > \newcommand{\ion}[2]{% replace the aastex version > \setcounter{ionstage}{#2}% > \Ion{#1}{\Roman{ionstage}}} > > % \usepgfplotslibrary{external} > % \tikzset{external/force remake} > % \tikzexternalize > > \pgfplotsset{ > compat=1.5.1, % most current version as of writing (27 Jan 2012) > % compat=newest, % select to always use latest version (may cause minor > appearance changes) > width=\textwidth, > } > \begin{document} > \begin{tikzpicture} > \begin{loglogaxis}[ > xlabel={Observed Intensity, \(100 \times > I_{\lambda}/I(\mathrm{H}\beta)\)}, > ylabel={Model Intensity, \(100 \times I_{\lambda}/I(\mathrm{H}\beta)\)}, > log ticks with fixed point, > legend columns=4, > legend pos=north west, > % transpose legend, > ] > \addplot [ > scatter/classes={ > H1={mark=*,brown},% > He1={mark=*,green},% > C2={mark=triangle*,black},% > N2={mark=triangle*,cyan},% > O1={mark=*,orange},% > O3={mark=square*,orange},% > Ne3={mark=square*,blue},% > S2={mark=triangle*,red},% > S3={mark=square*,red},% > Ar3={mark=square*,magenta},% > Fe3={mark=square*,yellow}% > }, > only marks, scatter, > scatter src=explicit symbolic, > point meta=explicit symbolic, > nodes near coords*={\tiny\pgfmathprintnumber[set thousands > separator={}]\LAMBDA\,\AA}, > visualization depends on={\thisrow{lambda} \as \LAMBDA}, > nodes near coords align=\ALIGN, > visualization depends on={value\thisrow{align} \as \ALIGN}, > > error bars/x dir=both, > error bars/x explicit, > error bars/y dir=none, > ] table [ > x=Observed, > y=Model, > x error=Error, > meta=El > ] {ratios-177341.dat}; > \addlegendentry{\ion{H}{1}} > \addlegendentry{\ion{He}{1}} > \addlegendentry{\ion{C}{2}} > \addlegendentry{[\ion{N}{2}]} > \addlegendentry{[\ion{O}{1}]} > \addlegendentry{[\ion{O}{3}]} > \addlegendentry{[\ion{Ne}{3}]} > \addlegendentry{[\ion{S}{2}]} > \addlegendentry{[\ion{S}{3}]} > \addlegendentry{[\ion{Ar}{3}]} > \addlegendentry{[\ion{Fe}{3}]} > \label[Ne3]{marker:Ne3} > \addplot [gray,domain=0.2:300] {x}; > \end{loglogaxis} > \end{tikzpicture} > > The marker for [\ion{Ne}{3}] is \ref{marker:Ne3} > > \end{document} > > > Best regards > > Christian -- Dr William Henney, Centro de Radioastronomía y Astrofísica, Universidad Nacional Autónoma de México, Campus Morelia
ratios-figure-figure10.pdf
Description: Adobe PDF document
------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________ Pgfplots-features mailing list Pgfplots-features@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pgfplots-features