matplotlib之contours等高线3D图(笔记五)

Posted 月疯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matplotlib之contours等高线3D图(笔记五)相关的知识,希望对你有一定的参考价值。

等高线代码:

# -*- coding:utf-8 -*-
#matplotlib等高线
import matplotlib.pyplot as plt
import numpy as np

def f(x,y):
    return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)

x=np.linspace(-3,3,100)
y=np.linspace(-3,3,100)

X,Y=np.meshgrid(x,y)
plt.contourf(X,Y,f(X,Y),8,alpha=0.5,cmap=plt.cm.hot)#cmp表示图的颜色,8表示8+1条线


#x,y的坐标去掉
plt.xticks(())
plt.yticks(())
plt.show()

图形展示:

添加等高线的描述:

# -*- coding:utf-8 -*-
#matplotlib等高线
import matplotlib.pyplot as plt
import numpy as np

def f(x,y):
    return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)

x=np.linspace(-3,3,100)
y=np.linspace(-3,3,100)

X,Y=np.meshgrid(x,y)
plt.contourf(X,Y,f(X,Y),8,alpha=0.5,cmap=plt.cm.hot)#cmp表示图的颜色,8表示8+1条线

#等高线的描述
C=plt.contour(X,Y,f(X,Y),8,colors='black',linewidth=.5)
plt.clabel(C,inline=True,fontsize=10)#True表示数值再等高线里面,字体大小是10

#x,y的坐标去掉
plt.xticks(())
plt.yticks(())
plt.show()



 

绘制3D图形:

# -*- coding:utf-8 -*-
#matplotlib等高线
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig=plt.figure()
ax=Axes3D(fig)

x=np.arange(-4,4,0.25)
y=np.arange(-4,4,0.25)

X,Y=np.meshgrid(x,y)
R=np.sqrt(X**2 + Y**2)
Z=np.sin(R)

ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))#rstride、cstride调整图形格子大小,cmap设置颜色
plt.show()

效果展示:

再次添加等高线:

# -*- coding:utf-8 -*-
#matplotlib等高线
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

fig=plt.figure()
ax=Axes3D(fig)

x=np.arange(-4,4,0.25)
y=np.arange(-4,4,0.25)

X,Y=np.meshgrid(x,y)
R=np.sqrt(X**2 + Y**2)
Z=np.sin(R)

ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))#rstride、cstride调整图形格子大小,cmap设置颜色
#绘制一个等高线图
ax.contourf(X,Y,Z,zdir='z',offser=-2,cmap='rainbow')
ax.set_zlim(-2,2)

plt.show()


效果展示:

以上是关于matplotlib之contours等高线3D图(笔记五)的主要内容,如果未能解决你的问题,请参考以下文章

R语言可视化2D密度图使用geomtextpath包的geom_textdensity2d函数在二维密度图的不同等高线(contour lines)水平嵌入数值标签

Python之神奇的绘图库matplotlib

Gdal之栅格数据等高线

实现图像等高线绘图的基本思路

使用Matplotlib绘制数据图

仅清除 matplotlib 图形的一部分