【问题标题】:removing shades from surface plot in python从python中的表面图中去除阴影
【发布时间】:2012-02-15 12:58:34
【问题描述】:

当我运行附加的 python 代码时(其中一些是我尝试生成的图形遗留下来的垃圾),我得到一个有两种阴影的表面。 (深红色和浅红色),有没有办法把它变成一个单一的阴影?

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import sys
from math import sqrt,exp,log, sin
from pylab import rcParams

rcParams['figure.figsize'] = 30,26
fig = plt.figure()
ax = fig.add_subplot(211, projection='3d')

l = 7
sigma = 1.0/277.450924284104 #You are stupid so have found the charge density for surface potentail of exactly 62mV
pi = 3.14159
b = 1.0/(2*pi*sigma*l)
lambdaD = 9.5

X0, Y0 = np.mgrid[0:1:100j, 0:1:100j]
Z0 = np.zeros_like(X0)
for i in range(0,len(X0)):
    for j in range (0, len(X0[i])):
        Z0[i][j] = 10*sin(X0[i][j]*2*pi)


ax.plot_surface(X0,Y0,Z0,color='red', linewidth=0, rstride=10, cstride=10, antialiased=False)
ax.set_axis_off()

【问题讨论】:

    标签: python plot matplotlib


    【解决方案1】:

    当然,只需将shade=False 指定为ax.plot_surface

    另外,绝对不需要使用嵌套的 for 循环或通过rcParams 指定图形大小。

    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D
    import matplotlib.pyplot as plt
    
    fig = plt.figure(figsize=(30, 26))
    ax = fig.add_subplot(111, projection='3d')
    
    X0, Y0 = np.mgrid[0:1:100j, 0:1:100j]
    Z0 = 10 * np.sin(X0 * 2 * np.pi)
    
    
    ax.plot_surface(X0,Y0,Z0,color='red', linewidth=0, rstride=10, cstride=10, 
                    antialiased=False, shade=False)
    ax.set_axis_off()
    
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2018-05-24
      • 2012-10-28
      • 1970-01-01
      • 2022-08-08
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多