在Mayavi plot3d函数中按给定范围更改颜色

时间:2019-07-18 19:20:22

标签: python visualization mayavi mayavi.mlab

我有一个具有4列x,y,z和幅度(需要绘制的值)的数据框,幅度值从0到30.3不等。如果给我最大和最小幅度,则需要绘制表面。假设我得到的最小震级为2.0,最大震级为10.0。因此,我想以一种方式绘制它,以使大于最大值的值突出显示为红色,而小于最小值的值突出显示为绿色。

我尝试了以下代码,但是我得到的都是绿色。

p7 = mlab.plot3d(df['x_coordinate'],df['y_coordinate'],df['z_coordinate'],df['Magnitude_F'],tube_radius=Config.BEADDIAMETER, tube_sides=Config.BEADCORNERS, colormap='copper',vmin = 2, vmax = 10.0)
p8 = mlab.plot3d(df['x_coordinate'],df['y_coordinate'],df['z_coordinate'],df['Magnitude_F'],tube_radius=Config.BEADDIAMETER, tube_sides=Config.BEADCORNERS, color=(1,0,0),vmin = 10.0)
p9 = mlab.plot3d(df['x_coordinate'],df['y_coordinate'],df['z_coordinate'],df['Magnitude_F'],tube_radius=Config.BEADDIAMETER, tube_sides=Config.BEADCORNERS, color=(0,1,0),vmax = 2.0)

mlab.colorbar(object=p7, title="Points in Magnitude_F") 
mlab.colorbar(object=p8, title="Above maximum Magnitude_F",orientation = 'vertical' )
mlab.colorbar(object = p9, title= "Below minimum Magnitude_F", orientation = 'vertical')

mlab.show()

下面的图像是我使用以下代码时得到的。 现在,我只希望如果我将最大值设置为10,则所有高于10的值(即10到27.1)都应该用单色表示,可以突出显示,因为我不喜欢这个高值。同样,如果我将2设为较低值,则与较低值相似,那么所有低于2的值都应为单色。在暗淡的图像中,让我难以理解的是,将大于10的值视为难以阅读。

p7 = mlab.plot3d(df['x_coordinate'],df['y_coordinate'],df['z_coordinate'],df['Magnitude_F'],tube_radius=Config.BEADDIAMETER, tube_sides=Config.BEADCORNERS, colormap='blue-red')
mlab.colorbar(object=p7, title="Magnitude_F")

enter image description here] 1

0 个答案:

没有答案