PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahlenformat der Achsenbeschriftung mit TikZ



Steffen1187
20-01-2014, 09:00
Hallo zusammen,

ich habe folgendes Problem: Ich plotte zwecks optisch besserer Darstellung Matlab Ausgaben über TikZ neu. In meinem TikZ file steht dann zum Beispiel


ytick={-0.09798, 0.73097, 1.5599},

Während der zweite und dritte Tick als 0.73 bzw. 1.56 dargestellt werden, wird der erste in diesem Fall als -9.8*10^-2 dargestellt, was deutlich mehr Platz braucht und die y-Achsenbeschriftung verschiebt.

Hier das komplette Minimalbeispiel:


\documentclass[]{scrreprt}

\usepackage[pdftex,dvips,final]{graphicx}
\graphicspath{{C:/Users/sdy7si/Documents/Master_Thesis/Grafiken/}} % Dort liegen die Bilder des Dokuments
\usepackage[]{epstopdf}
\epstopdfsetup{outdir=./Grafiken/}
\usepackage[]{pstool}
\usepackage[]{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}

\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/]
\pgfplotsset{invoke before crossref tikzpicture={\tikzexternaldisable},invoke after crossref tikzpicture={\tikzexternalenable}}

%Farben aus Matlab
\definecolor{mycolor1}{rgb}{0,0.1961,0.3922}%
\definecolor{mycolor6}{rgb}{0,0.8078,0.8196}%

\newlength\figurewidth
\setlength\figurewidth{.75\textwidth}
\newlength\figureheight
\setlength\figureheight{.4\textheight}

\begin{document}
\begin{tikzpicture}

\begin{axis}[%
width=\figurewidth,
height=0.998087291399229\figurewidth,
%scale only axis,
xmin=0,
xmax=60,
xlabel={x Achse},
xmajorgrids,
ymin=0,
ymax=1,
ytick={ 0, 0.5, 1},
ylabel={y Achse},
ymajorgrids,
title={Titel},
legend style={at={(-0.03,1)},anchor=north east,draw=black,fill=white,legend cell align=left}
]
\addplot [
color=mycolor1,
solid,
line width=2.0pt,
forget plot
]
table[row sep=crcr]{
0.0384377351657242 0.632851998154007\\
0.0777341378895943 0.647570223743002\\
0.117455361007087 0.636596641652235\\
0.157209661539476 0.64495552939171\\
0.196623390015201 0.64508000986148\\};
\end{axis}
\begin{axis}[%
width=\figurewidth,
height=0.998087291399229\figurewidth,
%scale only axis,
xmin=0,
xmax=60,
every outer y axis line/.append style={mycolor6},
every y tick label/.append style={font=\color{mycolor6}},
ymin=-0.0979801786289969,
ymax=1.55992781188202,
ytick={-0.09798, 0.73097, 1.5599},
ylabel={y Achse},
axis x line*=bottom,
axis y line*=right,
legend style={at={(1.03,1)},anchor=north west,draw=black,fill=white,legend cell align=left}
]
\addplot [
color=mycolor6,
solid,
line width=2.0pt,
forget plot
]
table[row sep=crcr]{
0.0384377351657242 0.00515810957241325\\
0.0777341378895943 0.0053822016679956\\
0.117455361007087 0.00514311270152846\\
0.157209661539476 0.00535063871263437\\
0.196623390015201 0.00523053133534605\\
};
\end{axis}
\end{tikzpicture}%

\end{document}

Kann man definieren, dass dann dieses Label z.B. als -0.09 (nach der 2ten Nachkommastelle abgeschnitten) oder -0.10 (gerundet) dargestellt werden soll?

Danke euch und Grüße
Steffen

Lex_83
20-01-2014, 09:46
Hi,

es ist zwar keine direkte Antwort auf Deine Frage, aber wenn du das häufiger machst kann ich Dir für Matlab Matlabfrag

Link (http://www.mathworks.com/matlabcentral/fileexchange/21286-matlabfraghttp://)

empfehlen. Dadurch wird der Transfer von Matlab zu Tex sehr einfach und auch gut änderbar.

Gruß

Steffen1187
20-01-2014, 09:54
Grüß dich,

danke für den Tip. Ich verwende matlab2tikz (http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz). Mit Matlabfrag habe ich zeitweise auch herumgespielt, finde matlab2tikz jedoch besser (persönliche Meinung).

Grüße
Steffen

esdd
22-01-2014, 11:10
Du kannst bei every y tick label/.append style zusätzlich die Formatierung der Zahlen vorgeben:


...
every y tick label/.append style={
font=\color{mycolor6},
/pgf/number format/.cd,fixed,zerofill,precision=2},
...

Gruß
Elke

Steffen1187
22-01-2014, 11:48
Grüß dich Elke,

ich danke dir vielmals! Macht genau das, was ich mir gewünscht habe :)