
Estoy experimentando para encontrar una buena manera de hacer un gráfico de campo vectorial 3D de un campo magnético de un cable delgado. Una idea era utilizar un color diferente para cada valor z fijo. Intenté usar la lista de ciclos, pero esto no parece funcionar con gráficos de carcaj. ¿Cómo puedo hacer que funcione?
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{
compat=newest,
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=-10:10,
samples=10,
xmin=-10,xmax=10,
ymin=-10,ymax=10,
zmin=-10,zmax=10,
cycle list name=color,
]
\pgfplotsinvokeforeach{-10,-5,5,10}{
\pgfplotsset{cycle list shift=1}
\addplot3[quiver,-stealth,
quiver={
u={-y/(x^2+y^2},
v={x/(x^2+y^2)},
w={0},
scale arrows=10
},
]
(x,y,#1);
}
\draw[ultra thick] (0,0,-12) -- (0,0,12);
%\fill[gray,opacity=0.2] (-1,-1,0) rectangle (1,1,0);
\end{axis}
\end{tikzpicture}
\end{document}
Respuesta1
Utilice colored=mapped color
(y algunos point meta
, si es necesario).
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{
compat=newest,
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=-10:10,
samples=10,
xmin=-10,xmax=10,
ymin=-10,ymax=10,
zmin=-10,zmax=10,
point meta=z,
]
\pgfplotsinvokeforeach{-10,-5,5,10}{
\addplot3[quiver,-stealth,
quiver={
u={-y/(x^2+y^2},
v={x/(x^2+y^2)},
w={0},
scale arrows=10,
colored=mapped color
},
]
(x,y,#1);
}
\draw[ultra thick] (0,0,-12) -- (0,0,12);
%\fill[gray,opacity=0.2] (-1,-1,0) rectangle (1,1,0);
\end{axis}
\end{tikzpicture}
\end{document}
Obviamente puedes jugar con el mapa de colores y point meta
.