Die grauen Striche sind tatsächlich da, auch mit Version 1.10 und ergänztem `\pgfplotsset{compat=1.10}`:
![alt text][1]
Sie werden von dem zweiten Plot durch die Option `axis y line*=right` in Kombination mit dem Zeichnen der `xtick` erzeugt. Da die linke Achse fehlt, wird dort ein grauer `xtick` eingefügt. Dieser landet dann auf der linken Achse des ersten Plots. Sichtbar wird das, wenn man den ersten Plot (und den zugehörigen Legendeneintrag) auskommentiert:
![alt text][2]
Vermeiden lässt sich das zum einen in dem man die ohnehin überflüssige Erstellung von `xtick`s im zweiten Plot mit `xtick=\empty` abstellt, da diese schon vom ersten Plot ausgegeben werden und/oder zum anderen in dem man beim zweiten Plot beide Achsen zeichnen lässt und nur die `yticklabel` mit Hilfe von `yticklabel pos=right` auf die rechte Seite schiebt.
\documentclass{scrbook}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}% derzeit aktuelle Version
Version ist 1.10
\usepgfplotslibrary{units}
\usepackage{siunitx}
\usepgfplotslibrary{units}
\pgfplotsset{
width=\textwidth,
height = 0.4\textheight,
compat=newest,
minor tick style={black},
legend style={cells={anchor=west}},
every axis legend/.append style={at={(0.99,
0.99)},
anchor=northeast},
ticklabel shift={0.05cm}
}
\usepackage[utf8]{inputenc}% Eingabekodierung, gegebenenfalls anpassen
\begin{document}
\begin{figure}[htb]
\centering
\begin{tikzpicture}
\begin{axis}[grid = major, width = \textwidth-45pt, \pgfplotsset{
width=\textwidth-45pt,
height = 0.4\textheight,
xlabel near ticks,
ylabel near ticks,
xlabel = {Scherrate},
x unit=\si{\second},
ylabel = {aaa},
y unit=\si{\percent},
xmin=0, xmax=100,
ymin=400, ymax=700,
x legend style={%
at={(0.99,0.99)},
anchor=north east
},
legend cell align=left,
ticklabel shift={0.05cm},
tick label style={/pgf/number format/1000 sep=}
sep=},
xmin=0,xmax=100,
no markers
}
\begin{axis}[
grid = major,
xlabel = {Scherrate},
x unit=\si{\second},
ylabel = {aaa},
y unit=\si{\percent},
ymin=400, ymax=700,
]
\addplot[color = blue, mark = none] \addplot[blue] table {\jobname A.dat};
\label{Viskositaet}% keine Umlaute verwenden!!!
\end{axis}
\begin{axis}[width = \textwidth-45pt, height = 0.4\textheight,
%axis y line*=right,% besser beide Achsen zeichnen lassen
%
\begin{axis}[
yticklabel pos=right,% yticklabel auf der rechten Seite
ylabel = {xxx},
y unit=\si{\percent},
xmin=0, xmax=100,
ymin=0, ymax=300,
xtick=\empty,% xticks nicht noch einmal zeichnen
%x tick label style={/pgf/number format/1000 sep=},
legend pos=north east,
legend cell align=left,
legend style={at={(0.99,0.99)}}
]
\addplot[color = red, mark = none] \addplot[red] table {\jobname B.dat};
\addlegendimage{/pgfplots/refstyle=Viskositaet}
\addlegendentry{Schubspannung}
\addlegendentry{Viskosität}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
Ergebnis:
![alt text][3]
![alt text][4]
Bitte beachte, dass ich zusätzlich `inputenc` zur Angabe der Eingabekodierung geladen habe und dass es nicht sinnvoll ist, im Argument von `\label` Umlaute zu verwenden.
verwenden. Außerdem habe ich den Code noch etwas überarbeitet und unnötige Doppeleinstellungen entfernt.
----------
Alternativ kann man das Problem auch lösen, wenn man mit
\pgfplotsset{set layers}
die Nutzung von Ebenen aktiviert. Bei den dann aktivierten Standardebenen wird die mit den Ticks vor der mit den Achsen ausgegeben.
[1]: http://texwelt.de/wissen/upfiles/xtick_1.png
[2]: http://texwelt.de/wissen/upfiles/xtick1.png
[3]: http://texwelt.de/wissen/upfiles/xtick2_1.png
[4]: http://texwelt.de/wissen/upfiles/xtick3_1.png