vector plot 固定arrow size



  • 有没有合适的工具可以画出如下这种速度quiver 图? 其特征是箭头头部的大小不随箭头长度(速度大小)改变。尝试过Matlab和matplotlib 里面的quiver都不行。目前看到的比较繁琐的方法就是把每个箭头一个一个的用annotation的方式加进去。
    yig
    0_1461055220855_upload-ddd01a70-dea5-4f87-816f-9359b5d5c01d


  • OpenFOAM教授

    这种图paraview可以做的,UserGuide.pdf U-28。



  • 感谢,我看了下,UserGuide里面U28说的是把scale关掉,这会导致所有的箭头长度和箭头头部大小都一样。目前从ParaView的控制面板上还找不到保持箭头头部大小不变,而箭头长度随速度大小scale的选项。

    一般的工具(Matlab, matplotlib, Paraview)里面, quiver图 里面的箭头大小都跟着箭头长度一起变,所以在矢量很小时候,效果很糟糕。如下图就是Matlab里面quiver画出来的,
    0_1461126738148_upload-25983765-853b-4a0a-b72b-a0ffce9f781b

    不过后来找到一个比较好的办法,在latex里面使用pgfplot宏包可以解决。
    比如如下代码(来自这里)

    \documentclass{standalone}
    \usepackage{tikz}
    \usepackage{pgfplots}
    \begin{document}
    \begin{tikzpicture}
    \begin{axis}[domain=-3:3, view={0}{90}]
    \addplot3[blue, quiver={u={1}, v={(x-y)}, scale arrows=0.15}, -stealth,samples=20] {0};
    \end{axis}
    \end{tikzpicture}
    \end{document}
    

    可以产生画出:
    alt text
    可以看到箭头大小不随箭头长度改变。


Log in to reply