3d-gradient-colored.tex 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. \documentclass[varwidth=true, border=2pt]{standalone}
  2. \usepackage[usenames,dvipsnames]{xcolor}
  3. \usepackage{pgfplots}
  4. \pgfplotsset{compat=1.11}
  5. \usetikzlibrary{arrows.meta}
  6. \begin{document}
  7. \pgfplotsset{
  8. colormap={whitered}{
  9. color(0.000cm)=(blue!50!black);
  10. color(0.125cm)=(blue);
  11. color(0.250cm)=(SkyBlue);
  12. color(0.375cm)=(SkyBlue);
  13. color(0.500cm)=(SpringGreen);
  14. color(0.625cm)=(yellow);
  15. color(0.750cm)=(yellow);
  16. color(0.875cm)=(red);
  17. color(1.000cm)=(red!50!black)
  18. }
  19. }
  20. \begin{tikzpicture}
  21. \begin{axis}[
  22. domain=-2:2,
  23. view={0}{90},
  24. axis background/.style={fill=white},
  25. xmin=-2, xmax=2,
  26. ymin=-2, ymax=2,
  27. axis equal image,
  28. point meta rel=per plot
  29. ]
  30. \addplot3[surf,
  31. samples=50,
  32. shader=interp,
  33. colormap name=whitered]
  34. {x/exp(x^2+y^2)};
  35. % \addplot3[contour gnuplot={number=15, labels=false},
  36. % very thick,
  37. % samples=30]
  38. % {x/exp(x^2+y^2)};
  39. \addplot3[blue,
  40. point meta={
  41. sqrt(
  42. ((1-2*x^2)*exp(-x^2-y^2))^2+
  43. (-2*x*y*exp(-x^2-y^2))^2
  44. )
  45. },
  46. quiver={
  47. u={(1-2*x^2)*exp(-x^2-y^2)},
  48. v={-2*x*y*exp(-x^2-y^2)},
  49. scale arrows=0.3,
  50. every arrow/.append style={%
  51. -{Latex[scale length={max(0.01,\pgfplotspointmetatransformed/1000)}]},
  52. },
  53. },
  54. samples=15]
  55. {x/exp(x^2+y^2)};
  56. \end{axis}
  57. \end{tikzpicture}
  58. \end{document}