首页 > 解决方案 > Matplotlib:另一种颜色的形状内部

问题描述

考虑使用以下代码获得的伪球图(只是下面的蓝色形状)

    from mpl_toolkits.mplot3d import Axes3D
    import matplotlib.pyplot as plt
    import numpy as np

    '''
    ==========================================
    Ploting S^n_1
    '''

    fig = plt.figure(figsize=plt.figaspect(1))  
    ax = fig.add_subplot(111, projection='3d')

    r=1
    u=np.linspace(-2,2,200)
    v=np.linspace(0,2*np.pi,60)
    [u,v]=np.meshgrid(u,v)

    a = 1
    b = 1
    c = 1

    x = a*np.cosh(u)*np.cos(v)
    y = b*np.cosh(u)*np.sin(v)
    z = c*np.sinh(u)

    ax.plot_surface(x, y, z,  rstride=4, cstride=4, color='#428bca')
    ax.set_axis_off()
    plt.show()

在此处输入图像描述

我发现发现形状内部和外部之间的差异并不容易。出于这个原因,我希望内饰采用另一种颜色。在任何想法中如何做到这一点?

标签: pythonmatplotlib

解决方案


应用@Guimute 的建议,我想出了一些更容易阅读的东西。这是上面代码中唯一修改的行

ax.plot_surface(x, y, z,  rstride=4, cstride=4, color='#428bca', edgecolor='#003366')

我在其中添加了参数edgecolor,以便在形状的网格和面之间有更多的对比。结果如下:(我还将双曲线的蓝/绿颜色改为红色)

在此处输入图像描述

附言

我不会(暂时)接受这个作为答案,以防其他人提出一些问题。


推荐阅读