python之matplotlib (6 等高线和热力图)

等高线

import numpy as np
import matplotlib.pyplot as plt


def f(x,y):
    return (1-x/2+x**5+y**3)*np.exp(-x**2-y**2)
n=256
x=np.linspace(-3,3,n)
y=x
X,Y=np.meshgrid(x,y)
plt.contourf(X,Y,f(X,Y),8,alpha=0.75,cmap='viridis')
plt.colorbar()
C=plt.contour(X,Y,f(X,Y),8,colors='k',linewidths=0.5)
plt.clabel(C,inline=True,fontsize=10,fmt='%1.1f')
plt.xticks(())
plt.yticks(())
plt.show()

画等高线肯定是一个三维图形,所以先定义一个函数。plt.contourf是画上图中的颜色部分,8是呈现的等高线部分数,alpha是调节透明度,cmap是绘制等高线(内部)的颜色。

plt.contour是绘制线条的,这里注意colors参数不能简写为c(不同于color),同样linewidths不能简写为lw。colors设置的是线的颜色,linewidths设置的是线的宽度。

plt.clabel是设置标注的数字,将上述的线命名为C,传入clabel中;inline表示线是否(True)穿过数字,fontsize是设置字体大小,fmt是设置数字格式。

热力图

import numpy as np
import matplotlib.pyplot as plt


n=256
x=np.random.rand(16,16)
plt.figure()
plt.imshow(x,cmap='inferno',interpolation='none')
plt.colorbar()
plt.show() 

热力图的绘制比较简单,主要是利用plt.imshow函数。interpolation是设置插值方法(默认就是none,不用写也可以)。因为在这里我们要画的就是热力图,所以不需要插值。举个例子,一张图片实际上是有许多小的元素方块组成的,如果你想从整体上得到一个平滑不突兀的效果(即看不出来小方块的痕迹),那么一个方法就是使用更多的小方块,另一个就是利用插值让画面看起来更平滑(方块与方块的界限不明显)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C.L.L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值