有人会画三维柱状图么?


  • 管理员

    有人会画这种图么?下面是原始数据,xyz,xy是坐标,z是高度。帮老铁做一个啊
    捕获.JPG

    -1.012290266	-0.271242359	0.206228739
    -0.271242359	-1.012290266	0.020833333
    -1.808492502	0.524959876	0.206228739
    0.524959876	-1.808492502	0.020833333
    0.271242359	1.012290266	0.020833333
    1.012290266	0.271242359	0.002104594
    -0.524959876	1.808492502	0.020833333
    1.808492502	-0.524959876	0.002104594
    -2.391352991	-1.650305084	0.206228739
    -1.650305084	-2.391352991	0.020833333
    -3.187555227	-0.854102849	0.206228739
    -0.854102849	-3.187555227	0.020833333
    1.650305084	2.391352991	0.020833333
    2.391352991	1.650305084	0.002104594
    0.854102849	3.187555227	0.020833333
    3.187555227	0.854102849	0.002104594
    


  • 很快嗷,Origin就出图了,画出来应该是这样的吧?
    acd27fb6-ac75-449d-98ca-230b7d49a346-image.png



  • python


  • 管理员

    @veen 老铁厉害啊 我这没有origin origin能做高斯分布曲线图不

    微信图片_20210114180631.png



  • https://wizardforcel.gitbooks.io/matplotlib-intro-tut/content/matplotlib/31.html
    把x3y3dz改为你的数据就行,剩下的就是设置图的其他东西了
    为啥恢复间隔300s。。。



  • @李东岳 可以是可以,不过数据点得细,或者插值一下再做,您上边这个图应该是用matlab画的
    ab8459bb-9428-4614-8e4e-960cf8e29afe-image.png




  • 管理员

    @星星星星晴 多谢老铁,我昨天试了一下,需要下载一个python的包,下一半断了。有空再试试



  • @李东岳 anaconda 下这个软件 然后什么包都不用装了 anaconda里面的spyder的ide用起来很简单,但是不能旋转图了,还是terminal出来的图的那个还可以旋转~
    大佬不用python么?


  • 管理员

    @星星星星晴 不用

    https://stackoverflow.com/questions/38698277/plot-normal-distribution-in-3d 我看了他们这个,我在ubuntu下用python,刚才还是没装上一些包,等 @veen 大佬用origin给我搞下得了..


  • 管理员

    python那个 我缺各种库 到后来 卡到

    Traceback (most recent call last):
      File "./plot.py", line 58, in <module>
        from mpl_toolkits.mplot3d import Axes3D
      File "/usr/local/lib/python2.7/dist-packages/mpl_toolkits/mplot3d/__init__.py", line 6, in <module>
        from .axes3d import Axes3D
      File "/usr/local/lib/python2.7/dist-packages/mpl_toolkits/mplot3d/axes3d.py", line 24, in <module>
        import matplotlib.axes as maxes
      File "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py", line 133, in <module>
        from matplotlib.rcsetup import defaultParams, validate_backend, cycler
      File "/usr/local/lib/python2.7/dist-packages/matplotlib/rcsetup.py", line 31, in <module>
        from matplotlib.fontconfig_pattern import parse_fontconfig_pattern
      File "/usr/local/lib/python2.7/dist-packages/matplotlib/fontconfig_pattern.py", line 28, in <module>
        from backports.functools_lru_cache import lru_cache
    ImportError: No module named backports.functools_lru_cache
    

    谷歌了很多办法也没用

    @veen 大佬直接给了我一个python的文件

    #! /usr/bin/env python
    
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy.stats import multivariate_normal
    from mpl_toolkits.mplot3d import Axes3D
    
    #Parameters to set
    mu_x = 0
    variance_x = 3
    
    mu_y = 0
    variance_y = 15
    
    #Create grid and multivariate normal
    x = np.linspace(-10,10,500)
    y = np.linspace(-10,10,500)
    X, Y = np.meshgrid(x,y)
    pos = np.empty(X.shape + (2,))
    pos[:, :, 0] = X; pos[:, :, 1] = Y
    rv = multivariate_normal([mu_x, mu_y], [[variance_x, 0], [0, variance_y]])
    
    #Make a 3D plot
    fig = plt.figure()
    ax = fig.gca(projection='3d')
    ax.plot_surface(X, Y, rv.pdf(pos),cmap='viridis',linewidth=0)
    ax.set_xlabel('X axis')
    ax.set_ylabel('Y axis')
    ax.set_zlabel('Z axis')
    plt.show()
    
    

    我在复现这篇文章里面的一些数据Euler–Euler Anisotropic Gaussian Mesoscale Simulation of Homogeneous Cluster-Induced Gas–Particle Turbulence,文章里面的方程17就是高斯分布。图1散点我搞出来了。但是有点问题。打算画图来debug一下。

    :zoule: :zoule:



  • @李东岳 李老师,可能是您python版本的问题,我用的是python3.8,您应该也有python3但是系统调用的是python2.7,可以试试python3 plot.py运行。
    坐等大佬改我的代码:chouchou:


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1