PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pgfplots Achsenbeschriftung



chaosman
17-12-2011, 18:43
hallihallo
ich habe ein kleines Problem mit der X-Achse meines Graphen. Wahrscheinlich sitze ich grade einfach schon zu lang dran um überhaupt noch die Lösung zu sehen... Ich würde gern die X-Achsenbeschriftung ohne diese Hochzahlen haben.
mein Code sieht grade so aus:


\documentclass[12pt
,a4paper
% ,draft
]{scrartcl}
\usepackage{amssymb,amsmath,amsfonts} %Mathematische Symbole
\usepackage[miktex]{gnuplottex} %gnuplot
\usepackage{pgfplots} %plots
\usepackage{pgfplotstable} %einlesen von Tabellen von pgf
\begin{document}
\begin{figure}[H]
\centering
\pgfplotstableread{patentblauextinktionskoeffizien t.txt}{\datatable}
\begin{tikzpicture}[scale=1.5]
\begin{axis}[
xlabel= \small {Konzentration \text{[mmol/L]}},
ylabel= Absorptionsmaximum,
xmin=0.002,
ylabel near ticks,
xlabel near ticks,
xmax=0.005,
ymin=0,
%xtick={0.002,0.003,0.004,0.005},
xtick=data,
%xticklabel={\pgfkeys{/pgf/fpu}\pgfmathparse{exp(\tick)}\pgfmathprintnumber\p gfmathresult},
% minor x tick num=3,
% minor y tick num =4,
height=7cm,
width=8.5cm,
% legend style={at={(1,0.4)},anchor=north east}
]
\addplot [red,no marks]table[y = Y1] from \datatable ;
\addplot+ [raw gnuplot, mark=none, line width=0.8pt, black] gnuplot [id=patentblauextinktionskoeffizient]{
f(x)=a*x+b;
fit [0.002:0.005]f(x) 'patentblauextinktionskoeffizient.txt' using 1:2 via a,b;
plot [x=0:0.005] f(x);};
\end{axis}
\end{tikzpicture}
\caption{test}
\end{figure}
\end{document}

ich habe auch schon

xticklabel={%
\pgfplotsset{/pgf/fpu}% <-- erweiterter zahlenbereich
\pgfmathparse{exp(\tick)}% exponentiere den exponent
\pgfmathprintnumber[fixed]{\pgfmathresult}% formatiere die zahl
},
]
ausprobiert ohne Erfolg.

Ich hoffe sehr mir kann jemand helfen. Im Anhang findet ihr die Messdatei zum compilieren

Gruß Chaos

Feuersaenger
17-12-2011, 22:15
Hi chaosman,

hilft Dir "scaled ticks=false,xtick style={/pgf/number format/fixed,/pgf/number format/precision=4}" ?

Das erste schaltet das extra-label " \cdot 10^{e}" aus (falls Du das hast) und das zweite konfiguriert die Zahldarstellung der x Achse. Der 'fixed' style vermeidet die Exponentialdarstellung und die precision gibt die rundungsgenauigkeit an. Es gibt (zusaetzlich) noch 'fixed zerofill', damit der hinten noch nullen auffuellt, bis precision stellen dargestellt werden.

Mit liebem Gruss

Christian

chaosman
18-12-2011, 00:03
hallo christian,

erster Teil super, 2. Teil hilft leider nicht - hab das ausprobiert und trotzdem habe ich noch meine zahlen in dem stil 2*10^-3 zu stehen...

hast du vielleicht noch was anderes?

Gruß Chaos

Feuersaenger
18-12-2011, 16:23
Hallo chaosman,

sorry, das beruht auf einem tippfehler von mir: ich meinte "xticklabel style={...}" und nicht "xtick style" ... letzteres gilt nur fuer die tick linien, fuer die das setzen von zahlformatierungen nicht so viel bringt ;)

Mit liebem Gruss

Christian

chaosman
18-12-2011, 21:56
1000 Dank ;) du bist mein offizieller Held :)

humpenjack
25-10-2012, 14:06
Hallo chaosman,

sorry, das beruht auf einem tippfehler von mir: ich meinte "xticklabel style={...}" und nicht "xtick style" ... letzteres gilt nur fuer die tick linien, fuer die das setzen von zahlformatierungen nicht so viel bringt ;)

Mit liebem Gruss

Christian

Hallo, die Sache funktioniert ja super ... also fast! Vielleicht könnt ihr mir bei dem letzten Schliff auch noch helfen:



\begin{figure}[htbp]
\centering
\begin{tikzpicture}
\begin{semilogxaxis}[
xmin=0, xmax=16,
ymin=0, ymax=100,
xtick={0.125,0.25,0.5,1,2,4,8,16},
ytick={0,20,...,100},
xlabel={Maschenweite/Lochweite, [mm]},
ylabel={Siebdurchgang, [Vol.-\%]},
xlabel style={
at={(0.5,-0.01)},
anchor= north,
fill=white,
},
ylabel style={
%at={(-0.01,0.5)},
%anchor= south,
%rotate=90,
fill=white,
},
scaled ticks=false,
xticklabel style={
/pgf/number format/fixed,
/pgf/number format/precision=3
},
xticklabel={%
\pgfplotsset{/pgf/fpu}% <-- erweiterter zahlenbereich
\pgfmathparse{exp(\tick)}% exponentiere den exponent
\pgfmathprintnumber[fixed]{\pgfmathresult}% formatiere die zahl
},
]

\addplot[color=blue,mark=*] coordinates{
(0.125,8)
(0.25,16)
(0.5,18)
(1,34)
(2,62)
(4,74)
(8,88)
(16,100)
};
\addlegendentry{B16};

\end{semilogxaxis}
\end{tikzpicture}


Der Graph verläuft genau so, wie es sein wollte. Leider mit einem Hacken - die letzte Zahl in der X-Achse wird nicht auf 16 sondern auch 15.998 angegeben. Ich benötige allerdings die 3 Nachkommastellen, da an vorher eine 0.125 stehen soll. Weiß jemand von euch Rat? Auch die Punkte wären schön - also 0.125 und nicht 0 125 ...?