python画出优美的等高线图
文中用python中的 matplotlib.pyplot画出各种类型颜色丰富多彩的各式地形图,其中每一行代码都有详细的介绍,并说明其含义和如何使用。代码可以直接运行使用。
代码如下:
-
import numpy as np
-
import matplotlib.pyplot as plt
-
# 第一个图
-
def calcu_elevation(x1, y1):
-
h = (1-x1/2 x1**3 y1**3) * np.exp(-x1**2-y1**2)
-
return h
-
n = 256 # 256个间隔点
-
x = np.linspace(-2, 2, n) # x坐标的数据
-
y = np.linspace(-2, 2, n) # y坐标的数据
-
# # 利用meshgrid()函数生成网格数据
-
x_grid, y_grid = np.meshgrid(x,y) # 使用 meshgrid 函数生成矩阵 X 和 Y。创建第三个矩阵 Z 并绘制其等高线。
-
fig = plt.figure() # pyplot.figure() 函数的作用就是创建一个图像,一般和plt.subplot() 一起用,subplot 就是创建子图。
-
ax = fig.add_subplot(111) # 指的就是将这块画布分为1×1,然后1对应的就是1号区
-
# 绘制等高线
-
con = ax.contour(x_grid, y_grid, calcu_elevation(x_grid, y_grid), 8, colors='black') # calcu_elevation(x_grid, y_grid)相对于Z坐标
-
# colors='black'填充等高线的颜色
-
ax.contourf(x_grid, y_grid, calcu_elevation(x_grid, y_grid), 8, alpha=0.5, cmap=plt.cm.copper)
-
# cmp表示图的颜色,8表示8 1条线,alpha表示颜色深度
-
# 为等高线添加文字标签
-
ax.clabel(con,inline=True, fmt='%1.1f', fontsize=10) # inline=True将数字插在等高线上,fontsize=10等高线字体大小
-
ax.set_xticks([])
-
ax.set_yticks([])
-
ax.set_title('contour line')
-
plt.show()
-
-
-
# 第二个图
-
def f(x, y):
-
return (1 - x / 2 x ** 5 y ** 3) * np.exp(-x ** 2 - y ** 2)
-
-
-
x = np.linspace(-3, 3, 50)
-
y = np.linspace(-3, 3, 50)
-
-
X, Y = np.meshgrid(x, y)
-
plt.contourf(X, Y, f(X, Y), 8, alpha=0.8, cmap=plt.cm.copper) # cmp表示图的颜色,8表示8 1条线
-
-
# x,y的坐标去掉
-
plt.xticks(())
-
plt.yticks(())
-
plt.show()
-
-
# 第三个图
-
x = np.linspace(-3, 3, 50) # 生成连续数据
-
y = np.linspace(-3, 3, 50) # 生成连续数据
-
X, Y = np.meshgrid(x, y)
-
# 生成能够在坐标系中形成点阵的数组,这个可以去参考一下别的文章
-
# https://lixiaoqian.blog.csdn.net/article/details/81532855 这里讲的比较详细
-
Z = X**3 Y**2 # 这里将高度设置为x^2 y^2,就能画一个圆形的等高线
-
C = plt.contour(x, y, Z, [2, 5, 8, 10]) # 画等高线 # 使用plt.contour(X, Y,Z,[2,5,8,10])也是没问题的
-
plt.clabel(C, inline=True, fontsize=10)
-
plt.show()
代码运行效果如下:
第一幅图形:
第二幅图形:
第三幅图形:
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgagfaf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13