matplotlib 3D plot, plot_surface black

前端 未结 1 1510
野性不改
野性不改 2021-01-24 08:09

I have the following data: https://www.dropbox.com/s/u7ee09chaixw5vb/draw?dl=0

it is saved using pickle in python3 and it is just a two dimensional python list, in the

相关标签:
1条回答
  • 2021-01-24 08:45

    There are a few problems with both your data and the arguments you used. The shape of your surface is extremely unequal and you are requesting one rstride for every line. The result is that you only see the black from the strides.

    The other problem is that you seem to have nan values in your data. Should you limit the data to the valid values and pick better stride numbers you should obtain a far better plot. For instance this:

    import matplotlib.pyplot as plt
    from mpl_toolkits.mplot3d import Axes3D
    import pickle
    
    with open('draw', 'rb') as pickle_file:
        xydict = pickle.load(pickle_file)
    
    fig = plt.figure()
    ax = Axes3D(fig)
    X = np.arange(0, len(xydict))
    Y = np.arange(0, len(xydict[0]))
    X, Y = np.meshgrid(X, Y)
    Z = np.array(xydict).T
    
    ax.plot_surface(X[:,:-2], Y[:,:-2], Z[:,:-2], rstride=100, cstride=1, cmap=plt.cm.hot)     
    # ax.contourf(X, Y, Z, zdir='z', offset=0, cmap=plt.cm.hot)
    ax.set_zlim(0,1)
    plt.show()
    

    , results in this:

    0 讨论(0)
提交回复
热议问题