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)水平嵌入数值标签