使用 tikz 和 gnuplot 叠加矢量场和轮廓图

使用 tikz 和 gnuplot 叠加矢量场和轮廓图

我一直在尝试生成一个图,其中有一个矢量场幅度的轮廓,并且在顶部绘制相同的矢量场。

生成轮廓似乎没有问题,但我似乎找不到绘制矢量场的方法(使用 gnuplot)。我最接近的方法是使用下面的代码

\begin{filecontents}{test.dat}
      0.25000000   0.00000000   0.01244442  -0.00102820
      0.24745536   0.03557871   0.01458852  -0.00682528
      0.23987324   0.07043314   0.01684754  -0.01216321
      0.22740800   0.10385375   0.01868942  -0.01674498
      0.21031338   0.13516020   0.02011573  -0.01983434
      0.18893739   0.16371518   0.02097252  -0.02141963
      0.16371518   0.18893739   0.02121539  -0.02188232
      0.13516020   0.21031338   0.02072794  -0.02109773
      0.10385375   0.22740800   0.01838178  -0.01992040
      0.07043314   0.23987324   0.01458487  -0.01831782
      0.03557871   0.24745536   0.00936304  -0.01729592
      0.00000000   0.25000000   0.00320612  -0.01703388
     -0.03557871   0.24745536  -0.00308422  -0.01699850
     -0.07043314   0.23987324  -0.00840902  -0.01795878
     -0.10385375   0.22740800  -0.01241573  -0.01954049
     -0.13516020   0.21031338  -0.01463361  -0.02041608
     -0.16371518   0.18893739  -0.01553877  -0.02065888
     -0.18893739   0.16371518  -0.01528775  -0.02006555
     -0.21031338   0.13516020  -0.01439546  -0.01828976
     -0.22740800   0.10385375  -0.01306564  -0.01499391
     -0.23987324   0.07043314  -0.01197325  -0.01054383
     -0.24745536   0.03557871  -0.01158730  -0.00510307
     -0.25000000   0.00000000  -0.01244442   0.00102820
     -0.24745536  -0.03557871  -0.01458851   0.00682528
     -0.23987324  -0.07043314  -0.01684754   0.01216320
     -0.22740800  -0.10385375  -0.01868942   0.01674497
     -0.21031338  -0.13516020  -0.02011572   0.01983433
     -0.18893739  -0.16371518  -0.02097252   0.02141962
     -0.16371518  -0.18893739  -0.02121538   0.02188231
     -0.13516020  -0.21031338  -0.02072793   0.02109773
     -0.10385375  -0.22740800  -0.01838178   0.01992039
     -0.07043314  -0.23987324  -0.01458487   0.01831781
     -0.03557871  -0.24745536  -0.00936304   0.01729591
     -0.00000000  -0.25000000  -0.00320612   0.01703387
      0.03557871  -0.24745536   0.00308422   0.01699850
      0.07043314  -0.23987324   0.00840901   0.01795877
      0.10385375  -0.22740800   0.01241572   0.01954048
      0.13516020  -0.21031338   0.01463361   0.02041607
      0.16371518  -0.18893739   0.01553876   0.02065887
      0.18893739  -0.16371518   0.01528774   0.02006554
      0.21031338  -0.13516020   0.01439545   0.01828975
      0.22740800  -0.10385375   0.01306563   0.01499391
      0.23987324  -0.07043314   0.01197325   0.01054382
      0.24745536  -0.03557871   0.01158730   0.00510307
      0.25000000  -0.00000000   0.01244442  -0.00102820

      0.50000000   0.00000000   0.03487771  -0.00012289
      0.49491072   0.07115742   0.03855601  -0.02675519
      0.47974649   0.14086628   0.04611102  -0.05034315
      0.45481600   0.20770751   0.05567821  -0.06884314
      0.42062677   0.27032041   0.06496719  -0.07975622
      0.37787479   0.32743037   0.07033963  -0.08097639
      0.32743037   0.37787479   0.07422312  -0.07974617
      0.27032041   0.42062677   0.07327565  -0.07441409
      0.20770751   0.45481600   0.06294688  -0.06647461
      0.14086628   0.47974649   0.04578087  -0.05999006
      0.07115742   0.49491072   0.02326903  -0.05602799
      0.00000000   0.50000000   0.00126173  -0.05616847
     -0.07115742   0.49491072  -0.02097079  -0.05805461
     -0.14086628   0.47974649  -0.04200299  -0.06172077
     -0.20770751   0.45481600  -0.05699274  -0.06761936
     -0.27032041   0.42062677  -0.06397533  -0.07512127
     -0.32743037   0.37787479  -0.06457599  -0.08089965
     -0.37787479   0.32743037  -0.05840981  -0.08059812
     -0.42062677   0.27032041  -0.05149746  -0.07728243
     -0.45481600   0.20770751  -0.04454231  -0.06431185
     -0.47974649   0.14086628  -0.03991223  -0.04605772
     -0.49491072   0.07115742  -0.03615646  -0.02433877
     -0.50000000   0.00000000  -0.03487771   0.00012290
     -0.49491072  -0.07115742  -0.03855601   0.02675517
     -0.47974649  -0.14086628  -0.04611101   0.05034313
     -0.45481600  -0.20770751  -0.05567821   0.06884312
     -0.42062677  -0.27032041  -0.06496718   0.07975621
     -0.37787479  -0.32743037  -0.07033962   0.08097639
     -0.32743037  -0.37787479  -0.07422311   0.07974617
     -0.27032041  -0.42062677  -0.07327564   0.07441408
     -0.20770751  -0.45481600  -0.06294687   0.06647460
     -0.14086628  -0.47974649  -0.04578086   0.05999005
     -0.07115742  -0.49491072  -0.02326903   0.05602798
     -0.00000000  -0.50000000  -0.00126173   0.05616846
      0.07115742  -0.49491072   0.02097079   0.05805460
      0.14086628  -0.47974649   0.04200298   0.06172077
      0.20770751  -0.45481600   0.05699273   0.06761935
      0.27032041  -0.42062677   0.06397532   0.07512126
      0.32743037  -0.37787479   0.06457598   0.08089964
      0.37787479  -0.32743037   0.05840980   0.08059811
      0.42062677  -0.27032041   0.05149746   0.07728242
      0.45481600  -0.20770751   0.04454230   0.06431184
      0.47974649  -0.14086628   0.03991223   0.04605770
      0.49491072  -0.07115742   0.03615646   0.02433875
      0.50000000  -0.00000000   0.03487771  -0.00012289

      0.75000000   0.00000000   0.04524078  -0.00095396
      0.74236608   0.10673613   0.05306879  -0.04574295
      0.71961973   0.21129942   0.06502646  -0.08325645
      0.68222400   0.31156126   0.07715058  -0.11208698
      0.63094015   0.40548061   0.09414626  -0.12967701
      0.56681218   0.49114555   0.11160899  -0.13672866
      0.49114555   0.56681218   0.12246886  -0.13413226
      0.40548061   0.63094015   0.12677188  -0.12876916
      0.31156126   0.68222400   0.11433009  -0.11917672
      0.21129942   0.71961973   0.08403693  -0.10706906
      0.10673613   0.74236608   0.04901281  -0.10124578
      0.00000000   0.75000000   0.00656410  -0.10326009
     -0.10673613   0.74236608  -0.04057348  -0.10483901
     -0.21129942   0.71961973  -0.07758878  -0.11251418
     -0.31156126   0.68222400  -0.10366723  -0.12354200
     -0.40548061   0.63094015  -0.11189908  -0.13212260
     -0.49114555   0.56681218  -0.10742430  -0.13646548
     -0.56681218   0.49114555  -0.09482291  -0.13823196
     -0.63094015   0.40548061  -0.07621721  -0.12980712
     -0.68222400   0.31156126  -0.05915587  -0.10778776
     -0.71961973   0.21129942  -0.04817206  -0.07545381
     -0.74236608   0.10673613  -0.04500190  -0.03925315
     -0.75000000   0.00000000  -0.04524078   0.00095397
     -0.74236608  -0.10673613  -0.05306879   0.04574293
     -0.71961973  -0.21129942  -0.06502645   0.08325644
     -0.68222400  -0.31156126  -0.07715057   0.11208696
     -0.63094015  -0.40548061  -0.09414625   0.12967700
     -0.56681218  -0.49114555  -0.11160898   0.13672866
     -0.49114555  -0.56681218  -0.12246886   0.13413226
     -0.40548061  -0.63094015  -0.12677188   0.12876915
     -0.31156126  -0.68222400  -0.11433009   0.11917672
     -0.21129942  -0.71961973  -0.08403693   0.10706906
     -0.10673613  -0.74236608  -0.04901281   0.10124577
     -0.00000000  -0.75000000  -0.00656410   0.10326008
      0.10673613  -0.74236608   0.04057348   0.10483901
      0.21129942  -0.71961973   0.07758878   0.11251418
      0.31156126  -0.68222400   0.10366722   0.12354200
      0.40548061  -0.63094015   0.11189908   0.13212260
      0.49114555  -0.56681218   0.10742429   0.13646548
      0.56681218  -0.49114555   0.09482290   0.13823196
      0.63094015  -0.40548061   0.07621721   0.12980711
      0.68222400  -0.31156126   0.05915587   0.10778775
      0.71961973  -0.21129942   0.04817206   0.07545380
      0.74236608  -0.10673613   0.04500190   0.03925313
      0.75000000  -0.00000000   0.04524078  -0.00095396

      1.00000000   0.00000000   0.03113259  -0.00274303
      0.98982144   0.14231484   0.04344356  -0.03983086
      0.95949297   0.28173256   0.05721310  -0.07792868
      0.90963200   0.41541501   0.07255247  -0.10553155
      0.84125353   0.54064082   0.09357257  -0.12897419
      0.75574957   0.65486073   0.11220525  -0.13997753
      0.65486073   0.75574957   0.12412760  -0.13308707
      0.54064082   0.84125353   0.12962609  -0.12306648
      0.41541501   0.90963200   0.11947635  -0.11856376
      0.28173256   0.95949297   0.09467411  -0.12315820
      0.14231484   0.98982144   0.05571594  -0.13168950
      0.00000000   1.00000000   0.01109093  -0.13925843
     -0.14231484   0.98982144  -0.03255831  -0.13580838
     -0.28173256   0.95949297  -0.07250166  -0.12487736
     -0.41541501   0.90963200  -0.09813630  -0.11775850
     -0.54064082   0.84125353  -0.10600721  -0.12160042
     -0.65486073   0.75574957  -0.10231271  -0.12708971
     -0.75574957   0.65486073  -0.08904257  -0.12966839
     -0.84125353   0.54064082  -0.07111012  -0.11957096
     -0.90963200   0.41541501  -0.05093528  -0.09456304
     -0.95949297   0.28173256  -0.03515922  -0.06341403
     -0.98982144   0.14231484  -0.03025696  -0.03027786
     -1.00000000   0.00000000  -0.03113259   0.00274304
     -0.98982144  -0.14231484  -0.04344356   0.03983085
     -0.95949297  -0.28173256  -0.05721310   0.07792867
     -0.90963200  -0.41541501  -0.07255247   0.10553155
     -0.84125353  -0.54064082  -0.09357256   0.12897419
     -0.75574957  -0.65486073  -0.11220525   0.13997754
     -0.65486073  -0.75574957  -0.12412760   0.13308708
     -0.54064082  -0.84125353  -0.12962609   0.12306649
     -0.41541501  -0.90963200  -0.11947636   0.11856377
     -0.28173256  -0.95949297  -0.09467412   0.12315820
     -0.14231484  -0.98982144  -0.05571594   0.13168950
     -0.00000000  -1.00000000  -0.01109093   0.13925843
      0.14231484  -0.98982144   0.03255832   0.13580837
      0.28173256  -0.95949297   0.07250167   0.12487736
      0.41541501  -0.90963200   0.09813630   0.11775851
      0.54064082  -0.84125353   0.10600721   0.12160043
      0.65486073  -0.75574957   0.10231271   0.12708972
      0.75574957  -0.65486073   0.08904257   0.12966840
      0.84125353  -0.54064082   0.07111012   0.11957096
      0.90963200  -0.41541501   0.05093528   0.09456304
      0.95949297  -0.28173256   0.03515922   0.06341402
      0.98982144  -0.14231484   0.03025696   0.03027785
      1.00000000  -0.00000000   0.03113259  -0.00274303
\end{filecontents}
\documentclass[border=2mm]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{compat=1.13}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            width=0.9\textwidth,
            height=0.9\textwidth,
            scale only axis,
            ymin=0, ymax=1,
            xmin=0, xmax=1,
            xlabel={$r_1/d$},
            ylabel={$r_2/d$},
            view={0}{90},
            colormap/hot2,
        ]
            \addplot3 [raw gnuplot,surf,shader=interp]
                gnuplot [id={surf}] {
                    set parametric;
                    set pm3d map interpolate 1,1;
                    plot 'test.dat' u 1:2:(sqrt(($3)^2+($4)^2));
            };

            \addplot [raw gnuplot] gnuplot {
                plot 'test.dat' u 1:2:(($3)/(sqrt(($3)^2+($4)^2))):(($4)/(sqrt(($3)^2+($4)^2))) with vectors;
            };
        \end{axis}
    \end{tikzpicture}
 \end{document}

是为了生成所需的轮廓,但矢量场没有显示,我得到的是等径向线,如下图所示

答案1

我已经放弃尝试使用 gnuplot 来进行箭筒工作了...我找到了以下解决方法:

\addplot [black,quiver={u={\thisrowno{2}/(sqrt((\thisrowno{2})^2+(\thisrowno{3})^2))},v={\thisrowno{3}/(sqrt((\thisrowno{2})^2+(\thisrowno{3})^2))}},-stealth] table {test.dat};

相关内容