Matplotlib 如何隐藏等高线线条以获得填充效果
在使用matplotlib绘制等高线图时,常常会用到pyplot.contourf
函数。这个函数可以根据数据集合对二维平面进行分类填充,从而呈现出等高线图的效果。但是,绘制出来的图形中不仅有填充色,还有许多杂乱的等高线线条,使得效果不太美观。那么该如何去除这些线条呢?本文将介绍如何在不影响填充效果的前提下,去除等高线线条。
阅读更多:Matplotlib 教程
使用contour
函数绘制等高线
首先,我们需要了解pyplot.contour
和pyplot.contourf
函数的区别。pyplot.contourf
函数是将数据集合颜色分区并填充,而pyplot.contour
函数则是绘制等高线线条。因此,我们可以通过先使用pyplot.contour
函数绘制等高线线条,再在其基础上使用pyplot.contourf
函数填充颜色。这样,我们就可以在绘制出高质量的等高线图的同时,去除掉不必要的等高线线条。
下面,我们来看一个具体的例子:
import numpy as np
import matplotlib.pyplot as plt
# 生成数据集合
x, y = np.meshgrid(np.linspace(-10, 10, 50), np.linspace(-10, 10, 50))
z = np.sin(np.sqrt(x**2 + y**2))/np.sqrt(x**2+y**2)
# 绘制等高线
plt.contour(x, y, z, 10, colors='black')
# 填充颜色
plt.contourf(x, y, z, 10, cmap='jet')
plt.show()
运行后,我们可以看到绘制出来的等高线图中包含了很多黑色的等高线线条。这些线条会影响整体的美感,我们需要将其去除掉。
如何隐藏等高线线条
要想去除等高线线条,我们需要使用等高线图的一个参数linewidths
。该参数表示等高线线条的宽度。如果将其设置为0,那么就可以让等高线线条不可见,从而实现去除线条的效果。具体实现代码如下:
import numpy as np
import matplotlib.pyplot as plt
# 生成数据集合
x, y = np.meshgrid(np.linspace(-10, 10, 50), np.linspace(-10, 10, 50))
z = np.sin(np.sqrt(x**2 + y**2))/np.sqrt(x**2+y**2)
# 绘制等高线
plt.contour(x, y, z, 10, colors='black', linewidths=0)
# 填充颜色
plt.contourf(x, y, z, 10, cmap='jet')
plt.show()
运行之后,我们可以看到等高线图中已经没有黑色线条,只有填充色,美观度也相应提升了很多。
总结
以上就是如何使用matplotlib
去除等高线图中的线条的方法。通过控制linewidths
参数,我们可以轻松地去除线条,从而获得更加美观的填充效果。