如何使用包含3列数据的文本文件中的数据列表创建等高线图?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (171)

我正在尝试使用三列数据在文本文件中创建包含数据列表的等高线图。我知道如何从文本文件中提取数据,但我不知道如何在基于数据列的等高线图中绘制图形。因此,列由';'分隔。第一列是半径,第二列是高度,第三列是k_eff。

74.5;160.0;2.17445
83.0;177.0;2.1883
95.5;202.0;2.19805
101.75;214.5;2.2033
112.0;235.0;2.21083
114.75;240.5;2.21018
125.0;261.0;2.21303
132.75;276.5;2.21633
140.75;292.5;2.2149
152.25;315.5;2.21714

我已经编写了一个基于像我这样的例子的代码,但它似乎没有用。下面是代码。但是使用这段代码我总是得到错误。

QhullError: QH6154 Qhull precision error: Initial simplex is flat (facet 2 is coplanar with the interior point)

While executing:  | qhull d Qbb Qz Qt Qc Q12
Options selected for Qhull 2015.2.r 2016/01/18:
run-id 1232967724  delaunay  Qbbound-last  Qz-infinity-point  Qtriangulate
Qcoplanar-keep  Q12-no-wide-dup  _pre-merge  _zero-centrum  Qinterior-keep
Pgood  _max-width 3.5e+02  Error-roundoff 7.1e-13  _one-merge 5e-12
Visible-distance 1.4e-12  U-coplanar-distance 1.4e-12  Width-outside 2.8e-12
_wide-facet 8.5e-12  .....



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

data_file = np.loadtxt('new7.txt', delimiter=';')

cz = data_file[:,0]
h = data_file[:,1]
k_eff = data_file[:,2]

[CZ, H] = np.meshgrid(np.unique(cz), np.unique(h))
Z = griddata(np.column_stack((cz,h)),k_eff,(CZ,H))

contour_graph = plt.contour(CZ,H,Z)
plt.xlabel('Radius (cm)')
plt.xlabel('Height (cm)')
plt.title('multiplication factor for different deminsions')
plt.clabel(contour_graph)
plt.grid()
plt.savefig('contour_plot4.png')

我期待这样的事情。 https://www.google.com/search?q=contour+plot+python&source=lnms&tbm=isch&sa=X&ved=0ahUKEwjHobaFo9DiAhUK5awKHQDsBJEQ_AUIECgB&biw=1536&bih=754#imgrc=8AyQEBR6HwVqYM

但我的只会有不同的价值观。

提问于
用户回答回答于

根据文档(https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html),您拥有的前两个参数是要传递的错误形状griddata

Z = griddata(np.column_stack((cz,h)), k_eff, (CZ, H))

这样做应该让czh成一个NX2 ndarray,这griddata会接受。

所属标签

可能回答问题的人

  • EatRice

    16 粉丝0 提问5 回答
  • gulu丶咕噜

    0 粉丝1 提问4 回答
  • 华讯云

    0 粉丝0 提问4 回答
  • 发条丶魔灵1

    9 粉丝526 提问3 回答

扫码关注云+社区

领取腾讯云代金券