如何绘制矢量场?

如何绘制矢量场?

我希望得到这个结果(用 Python 制作):

但我得到了这个结果:

这是我的代码:

\begin{tikzpicture}
        \begin{axis}[
        title={Campo de fuerzas},
        width= 6cm,
        xmin=-75,xmax=75,
        xlabel = {$w$},
        ylabel = {$h/2$},
        scale = 1.5,]
        \addplot [
        colormap/viridis,
        quiver={u=\thisrow{u},v=\thisrow{v}, every arrow/.append style={ line width=2pt},
        },
        quiver/colored = {mapped color},
        -stealth,
        ] table {
            x   y           u           v
            -69 31.5    4.08E-11    -6.39E-10
            -60 31.5    -5.08E-10   -1.01E-09
            -45 31.5    -1.60E-09   -1.48E-09
            -30 31.5    -2.52E-09   -1.67E-09
            -15 31.5    -3.09E-09   -1.72E-09
            0.5 31.5    -3.28E-09   -1.67E-09
            15  31.5    -3.19E-09   -1.53E-09
            30  31.5    -2.83E-09   -1.25E-09
            45  31.5    -2.11E-09   -7.54E-10
            60  31.5    -1.12E-09   -1.65E-10
            69  31.5    -5.85E-10   -7.35E-11
            -69 30      1.44E-11    -6.65E-10
            -60 30      -6.30E-10   -8.90E-10
            -45 30      -1.70E-09   -1.17E-09
            -30 30      -2.59E-09   -1.24E-09
            -15 30      -3.13E-09   -1.21E-09
            -0.5 30     -3.28E-09   -1.12E-09
            15  30      -3.16E-09   -9.68E-10
            30  30      -2.77E-09   -7.03E-10
            45  30      -2.03E-09   -3.01E-10
            60  30      -1.05E-09   1.01E-10
            69  30      -6.06E-10   -8.04E-10
            -69 24      1.91E-10    -9.10E-10
            -60 24      -5.89E-10   -9.27E-10
            -45 24      -1.48E-09   -7.96E-10
            -30 24      -2.15E-09   -6.09E-10
            -15 24      -2.55E-09   -4.07E-10
            0.5 24      -2.40E-09   -1.96E-10
            15  24      -2.12E-09   9.63E-12
            30  24      -1.89E-09   2.97E-10
            45  24      -1.41E-09   6.07E-10
            60  24      -7.58E-10   6.52E-10
            69  24      -8.36E-10   2.06E-10
            -69 18      5.41E-10    -1.01E-09
            -60 18      -2.05E-10   -9.99E-10
            -45 18      -6.42E-10   -6.86E-10
            -30 18      -7.92E-10   -3.24E-10
            -15 18      -8.20E-10   -1.42E-11
            -0.5 18     -7.00E-10   2.37E-10
            15  18      -5.67E-10   4.86E-10
            30  18      -4.09E-10   7.46E-10
            45  18      -2.52E-10   9.64E-10
            60  18      -2.20E-10   8.77E-10
            69  18      -9.67E-10   3.41E-10
            -69 12      9.07E-10    -8.63E-10
            -60 12      2.73E-10    -8.67E-10
            -45 12      3.91E-10    -5.48E-10
            -30 12      7.88E-10    -1.86E-10
            -15 12      1.08E-09    8.95E-11
            -0.5 12     1.21E-09    3.16E-10
            15  12      1.23E-09    5.42E-10
            30  12      1.21E-09    7.94E-10
            45  12      1.02E-09    9.57E-10
            60  12      3.05E-10    7.98E-10
            69  12      -1.01E-09   3.61E-10
            -69 6       1.16E-09    -4.88E-10
            -60 6       6.36E-10    -4.86E-10
            -45 6       1.19E-09    -3.13E-10
            -30 6       1.97E-09    -1.11E-10
            -15 6       2.49E-09    4.96E-11
            -0.5 6      2.75E-09    1.86E-10
            15  6       2.76E-09    3.21E-10
            30  6       2.53E-09    4.73E-10
            45  6       1.99E-09    5.85E-10
            60  6       7.07E-10    4.93E-10
            69  6       -1.02E-09   2.38E-10
            -69 0.5     1.26E-09    -4.67E-11
            -60 0.5     7.71E-10    -3.57E-11
            -45 0.5     1.50E-09    -2.55E-11
            -30 0.5     2.41E-09    -8.47E-12
            -15 0.5     3.02E-09    5.15E-12
            -0.5 0.5    3.36976E-09  9.16369E-12
            15  0.5     3.33E-09    2.90E-11
            30  0.5     3.03E-09    4.27E-11
            45  0.5     2.37E-09    5.13E-11
            60  0.5     9.09E-10    4.45E-11
            69  0.5     -1.02E-09   2.18E-11
            
        };
   \end{axis} 

我更改了比例箭头,但这会改变值。我如何才能获得预期的输出?

答案1

如果我可以给出答案,以下 MWEu=\thisrow{u}*1e10, v=\thisrow{v}*1e10按照@Jasper Habicht 的建议使用,scale arrows = 0.5以便更好地可视化它们。我还添加了一个xlabelcolorbar style={您可能会根据自己的比例进行更改。

我还应该说,表格上的数据只代表了 Python 原始图表的一半。

MWE 如下:

\documentclass{article}
\usepackage{tikz,pgfplots}
%\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
  \begin{axis}[
      title={Campo de fuerzas},
      width= 6cm,
      xmin=-75,xmax=75,
      xlabel = {$w$},
      ylabel = {$h/2$},
      scale = 2,
      colorbar,
      colorbar style={
        xlabel={$10^{-9}$},
        every axis x label/.style={at={(current axis.right of origin)},anchor=north},
      },
      colormap/viridis,
      ]
    \addplot[
      colormap/viridis,
      quiver={u=\thisrow{u}*1e10, v=\thisrow{v}*1e10,
        every arrow/.append style={line width=2pt},
        scale arrows = 0.5},
      quiver/colored = {mapped color},
      -stealth,
    ] table {
      x   y           u           v
      -69 31.5    4.08E-11    -6.39E-10
      -60 31.5    -5.08E-10   -1.01E-09
      -45 31.5    -1.60E-09   -1.48E-09
      -30 31.5    -2.52E-09   -1.67E-09
      -15 31.5    -3.09E-09   -1.72E-09
      0.5 31.5    -3.28E-09   -1.67E-09
      15  31.5    -3.19E-09   -1.53E-09
      30  31.5    -2.83E-09   -1.25E-09
      45  31.5    -2.11E-09   -7.54E-10
      60  31.5    -1.12E-09   -1.65E-10
      69  31.5    -5.85E-10   -7.35E-11
      -69 30      1.44E-11    -6.65E-10
      -60 30      -6.30E-10   -8.90E-10
      -45 30      -1.70E-09   -1.17E-09
      -30 30      -2.59E-09   -1.24E-09
      -15 30      -3.13E-09   -1.21E-09
      -0.5 30     -3.28E-09   -1.12E-09
      15  30      -3.16E-09   -9.68E-10
      30  30      -2.77E-09   -7.03E-10
      45  30      -2.03E-09   -3.01E-10
      60  30      -1.05E-09   1.01E-10
      69  30      -6.06E-10   -8.04E-10
      -69 24      1.91E-10    -9.10E-10
      -60 24      -5.89E-10   -9.27E-10
      -45 24      -1.48E-09   -7.96E-10
      -30 24      -2.15E-09   -6.09E-10
      -15 24      -2.55E-09   -4.07E-10
      0.5 24      -2.40E-09   -1.96E-10
      15  24      -2.12E-09   9.63E-12
      30  24      -1.89E-09   2.97E-10
      45  24      -1.41E-09   6.07E-10
      60  24      -7.58E-10   6.52E-10
      69  24      -8.36E-10   2.06E-10
      -69 18      5.41E-10    -1.01E-09
      -60 18      -2.05E-10   -9.99E-10
      -45 18      -6.42E-10   -6.86E-10
      -30 18      -7.92E-10   -3.24E-10
      -15 18      -8.20E-10   -1.42E-11
      -0.5 18     -7.00E-10   2.37E-10
      15  18      -5.67E-10   4.86E-10
      30  18      -4.09E-10   7.46E-10
      45  18      -2.52E-10   9.64E-10
      60  18      -2.20E-10   8.77E-10
      69  18      -9.67E-10   3.41E-10
      -69 12      9.07E-10    -8.63E-10
      -60 12      2.73E-10    -8.67E-10
      -45 12      3.91E-10    -5.48E-10
      -30 12      7.88E-10    -1.86E-10
      -15 12      1.08E-09    8.95E-11
      -0.5 12     1.21E-09    3.16E-10
      15  12      1.23E-09    5.42E-10
      30  12      1.21E-09    7.94E-10
      45  12      1.02E-09    9.57E-10
      60  12      3.05E-10    7.98E-10
      69  12      -1.01E-09   3.61E-10
      -69 6       1.16E-09    -4.88E-10
      -60 6       6.36E-10    -4.86E-10
      -45 6       1.19E-09    -3.13E-10
      -30 6       1.97E-09    -1.11E-10
      -15 6       2.49E-09    4.96E-11
      -0.5 6      2.75E-09    1.86E-10
      15  6       2.76E-09    3.21E-10
      30  6       2.53E-09    4.73E-10
      45  6       1.99E-09    5.85E-10
      60  6       7.07E-10    4.93E-10
      69  6       -1.02E-09   2.38E-10
      -69 0.5     1.26E-09    -4.67E-11
      -60 0.5     7.71E-10    -3.57E-11
      -45 0.5     1.50E-09    -2.55E-11
      -30 0.5     2.41E-09    -8.47E-12
      -15 0.5     3.02E-09    5.15E-12
      -0.5 0.5    3.36976E-09  9.16369E-12
      15  0.5     3.33E-09    2.90E-11
      30  0.5     3.03E-09    4.27E-11
      45  0.5     2.37E-09    5.13E-11
      60  0.5     9.09E-10    4.45E-11
      69  0.5     -1.02E-09   2.18E-11
    };
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容