java绘等高线图_Matplotlib中的极坐标等高线图

本文展示了如何使用Python的Matplotlib库在Java环境中绘制等高线图。通过contour()函数,可以将2D网格数据转换为等高线图。当数据非网格化时,可以借助griddata()函数重新进行网格化处理,然后绘制。示例代码包括了数据网格化和非网格化的等高线图绘制方法。
摘要由CSDN通过智能技术生成

Matplotlib的 contour() 函数要求将数据排列为点的2D网格以及每个网格点的相应网格值 . 如果您的数据自然排列在网格中,您可以将r,theta转换为x,y并使用 contour(r*np.cos(theta), r*np.sin(theta), values) 来制作您的绘图 .

如果您的数据不是't naturally gridded, you should follow Stephen'的建议,并使用 griddata() 将数据插入到网格中 .

以下脚本显示了两者的示例 .

import pylab as plt

from matplotlib.mlab import griddata

import numpy as np

# data on a grid

r = np.linspace(0, 1, 100)

t = np.linspace(0, 2*np.pi, 100)

r, t = np.meshgrid(r, t)

z = (t-np.pi)**2 + 10*(r-0.5)**2

plt.subplot(121)

plt.contour(r*np.cos(t), r*np.sin(t), z)

# ungrid data, then re-grid it

r = r.flatten()

t = t.flatten()

x = r*np.cos(t)

y = r*np.sin(t)

z = z.flatten()

xgrid = np.linspace(x.min(), x.max(), 100)

ygrid = np.linspace(y.min(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值