matplotlib_contours

本文介绍用matplotlib生成等高线图


Demo.py

import matplotlib.pyplot as plt
import numpy as np
#数据集即三维点 (x,y) 和对应的高度值,共有256个点。
#高度值使用一个 height function f(x,y) 生成。 
#x, y 分别是在区间 [-3,3] 中均匀分布的256个值,
#并用meshgrid在二维平面中将每一个x和每一个y分别对应起来,编织成栅格:
# 定义等高线高度函数
def f(x, y):
    return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(- x ** 2 - y ** 2)

# 数据数目
n = 256
# 定义x, y
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)

# 生成网格数据
X, Y = np.meshgrid(x, y)

#接下来进行颜色填充。使用函数plt.contourf把颜色加进去,位置参数分别为:X, Y, f(X,Y)。
#透明度0.75,并将 f(X,Y) 的值对应到color map的暖色组中寻找对应颜色
# 填充等高线的颜色, 8是等高线分为几部分
plt.contourf(X, Y, f(X, Y), 8, alpha = 0.75, cmap = plt.cm.hot)
# 绘制等高线
#接下来进行等高线绘制。使用plt.contour函数划线。位置参数为:X, Y, f(X,Y)。
#颜色选黑色,线条宽度选0.5。
#现在的结果如图所示,只有颜色和线条,还没有数值Label
C = plt.contour(X, Y, f(X, Y), 8, colors = 'black', linewidth = 0.5)
# 绘制等高线数据
#最后加入Label,inline控制是否将Label画在线里面,字体大小为10。
plt.clabel(C, inline = True, fontsize = 10)

# 将坐标轴隐藏
plt.xticks(())
plt.yticks(())
plt.show()

结果:

Paste_Image.png
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Matplotlib 入门教程 来源:Introduction to Matplotlib and basic l...
    布客飞龙阅读 32,008评论 5 162
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 雨,选择在黑夜落下 希望没有人看见他们悲伤 希望不被这个世界的喧哗打扰 希望坠落的姿势更加自然 我,似乎理解他们 ...
    忧伤没有伤口阅读 1,594评论 2 2
  • 有时候,你认识更多的牛逼朋友也不是一件多么好的事情,虽然进入了某个圈子后,开阔了你的眼界,激励了你的奋斗,坚定了你...
    阿春牧羊犬阅读 22,847评论 289 727
  • 目击众神死亡的草原上野花一片 远在远方的风比远方更远 我的琴声呜咽泪水全无 只身打马过草原 ——海子《九月》 中国...
    张曙波阅读 3,736评论 0 2

友情链接更多精彩内容