【问题标题】:How to make contour plot map and overcome no contour level were found?如何制作等高线图并克服没有找到等高线水平?
【发布时间】:2019-12-13 23:50:44
【问题描述】:

所以我是 python 的新手,我有一个制作等高线图的项目。我在 xlsx 中有一个数据,其中包含 xyz 值。 xy 是坐标,z 是测量值。

1. x        ;  y       ; z
2. 110.4482 ; 7.04428  ; 0.177
3. 110.4451 ; 7.04366  ; 0.102
4. 110.4432 ; 7.04432  ; 0.482
5. 110.4407 ; 7.04434  ; 0.504

我想制作像This 这样的轮廓 我试图制作一个轮廓,但是当我运行它时,它出现了一张空白图片This

还有一个注释:

warnings.warn("未找到等高线"

用户警告:在数据范围内未找到等高线级别。

xa[xa

:usr/local/lib/python3.6/dist-packages/matplotlib/contour.py:1243: 用户警告:在数据范围内未找到等高线级别。
warnings.warn("没有找到等高线"

这是我使用的代码:

import numpy as np
import pandas as pd
import matplotlib as ml
import matplotlib.pyplot as plt
from scipy.interpolate import griddata

xlsx_path =('Book1.xlsx')
df = pd.read_excel(xlsx_path)

x = df.iloc[1:20,0]
y = df.iloc[1:20,1]
z = df.iloc[1:20,2]
xi = np.linspace(6, 8, 20)
yi = np.linspace(109, 111, 20)
zi = griddata((x, y), z, (xi[None,:], yi[:,None]), method='cubic')
plt.contour(xi, yi, zi)
plt.show()

我该如何解决?

【问题讨论】:

  • 我们无法找出您的代码失败的原因。您需要使案例可重现,而不是您的实际数据(请参阅 minimal reproducible examplesscce.org
  • 我应该插入我的数据吗? @ImportanceOfBeingErnest
  • 是的,但您已经这样做了。见第一条评论。

标签: python-3.x pandas numpy matplotlib contour


【解决方案1】:

我该如何解决?

只需交换并调整 x, y-ranges,您尝试为其绘制标记为 z-values 的派生三次轮廓。

您绘制了一个“错误”-(定义不明确)-区域的数据,其中没有 z-level 轮廓已经进化到计算得越少。

xi = np.linspace(  6,   8, 20)  # actual data-values are ~ ( 110.437 : 110.448 )
yi = np.linspace(109, 111, 20)  # actual data-values are ~ (   7.042 :   7.050 )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-25
    • 2023-02-04
    • 2017-12-02
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2019-11-17
    • 1970-01-01
    相关资源
    最近更新 更多