如何制作等高线图并克服等高线未找到的问题?

时间:2019-08-06 12:13:00

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

所以我是python的新手,我有一个制作轮廓图的项目。我在xlsx中有一个数据,其中包含xyz值。 x y 是坐标,而 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这样的轮廓 enter image description here 我试图绘制轮廓,但是运行时它出现空白图片This enter image description here

和注释:

  

warnings.warn(“未找到轮廓线级别”

     

用户警告:在数据范围内未找到轮廓级别。

     

xa [xa <0] = -1 RuntimeWarning:较少遇到的无效值

     

: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()

我该如何解决?

1 个答案:

答案 0 :(得分:1)

  

Q 我该如何解决?

只需交换并调整x, y范围,就可以尝试绘制其中的制表z值的立方轮廓线。

您绘制了一个“ 错误”-(数据定义不正确)区域,在该区域中没有z级轮廓已经发展到可以计算较少的显示量。

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 )