Matplotlib练习8:等高线图

生成等高线图

import matplotlib.pyplot as plt
import numpy as np
# 这里必须有两个空白行,否则有错误 PEP 8: E302 expected 2 blank lines, found 1

def f(a, b):
    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坐标传入网格
X, Y = np.meshgrid(x, y)
# contour等高线 f(X,Y)等高线的高度, cmap为图颜色
# 8的意思是生成8+1条等高线
plt.contourf(X, Y, f(X, Y), 8, alpha=0.75, cmap=plt.cm.hot)
# 去掉x,y坐标值
plt.yticks(())
plt.xticks(())

plt.show()

效果图

将用黑线描等高线并标值(内嵌入等高线)

# 把x,y坐标传入网格
X, Y = np.meshgrid(x, y)
# contour等高线 f(X,Y)等高线的高度, cmap为图颜色
plt.contourf(X, Y, f(X, Y), 8, alpha=0.75, cmap=plt.cm.hot)
# 黑色线描等高线
C = plt.contour(X, Y, f(X, Y), 8, colors='black', linewidth=.5)
# inline=True将值嵌入等高线inline='False'
plt.clabel(C, inline=True, fontsize=10)

数值未被内嵌入等高线

# inline='False'
plt.clabel(C, inline=False, fontsize=10)

完整代码

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坐标传入网格
X, Y = np.meshgrid(x, y)
# contour等高线 f(X,Y)等高线的高度, cmap为图颜色
plt.contourf(X, Y, f(X, Y), 8, alpha=0.75, cmap=plt.cm.hot)
# 黑色线描等高线
# 8的意思是生成8+1条等高线
C = plt.contour(X, Y, f(X, Y), 8, colors='black', linewidth=.5)
# inline=True将值嵌入等高线
plt.clabel(C, inline=False, fontsize=10)

plt.yticks(())
plt.xticks(())

plt.show()

改为冷力图

#cmap为color map ,cool冷力图
plt.contourf(X, Y, f(X, Y), 8, alpha=0.75, cmap=plt.cm.cool)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_48524215/article/details/111814198
今日推荐