私は散布図と多くの等高線図を持っています。多くの輪郭があり、一部は閉じていない。 [this]から最大の閉じた輪郭の値を特定するにはどうしたらいいですか? 1最大の閉じた3D等高線プロットを見つける
答えて
最大の閉じた輪郭を見つけることは次のように行うことができます。ただし、これは「最大」とは最大のポイントツーポイント距離を意味することに注意してください。
他のサイズのメトリックも簡単に置換できます。
extend3d=True
バージョンを使用している場合は、作成したPoly3DCollection
を少し操作する必要があります。
from mpl_toolkits.mplot3d import axes3d, art3d
import matplotlib.pyplot as plt
from matplotlib import cm
from scipy.spatial import distance_matrix
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contour(X, Y, Z, cmap=cm.coolwarm)
ax.clabel(cset, fontsize=9, inline=1)
maxsize = 0
# Iterate over all the contour segments and find the largest
for i, segs in enumerate(cset.allsegs):
for j, seg in enumerate(segs):
# First make sure it's closed
if (seg[0]-seg[-1]).any():
continue
# Now get it's size
size = distance_matrix(seg, seg).max()
if size > maxsize:
maxsize = size
maxseg = (i, j)
# Now highlight the "biggest" closed contour
cset.collections[maxseg[0]].set_color('y')
cset.collections[maxseg[0]].set_lw(5)
pts2d = cset.allsegs[maxseg[0]][maxseg[1]]
z = cset.levels[maxseg[0]]
coords = np.c_[ pts2d, z*np.ones(pts2d.shape[0]) ]
print(coords)
plt.show()
これは、その結果:あなたは閉じた輪郭がどのように大規模な定義はどうすればよい
おかげで@jmetz。この輪郭にデータポイントを取得する機会はありますか? x、y、zの座標を意味しますか? – user6457831
np - データポイントは 'seg'変数に含まれていて(2dです)、z値は' cset.levels'の対応する要素にあります。 – jmetz
変数 'coords'に' x、y、z'として保存するようにコードを更新しました。 – jmetz
- 1. 3Dヒストグラムと等高線プロットPython
- 2. gnuplotの3D粒子位置の等高線プロット
- 3. Mapleの等高線プロット
- 4. gnuplotの4D等高線プロット
- 5. 3Dプロットの3軸すべての分布の等高線をプロット
- 6. ggtern等高線プロットin R
- 7. matlab等高線プロット値
- 8. 写真上のオブジェクトの等高線を見つける
- 9. 複数の等高線の連結ピクセルポイントを見つける
- 10. 等高線のある3Dグラフ
- 11. 2本の3D線分の最短距離を見つける
- 12. 1つのレベルを持つ複数のMATLAB等高線プロット
- 13. 軸線またはMatplotlib等高線プロットの起点を描く
- 14. 3D表面/等高線の投影された最小値と最大値のマーク
- 15. Matlab:塗りつぶした等高線プロットとimcontour
- 16. 制約付きMATLABの等高線プロット
- 17. Matlabの - 2D濃度/等高線プロット
- 18. ggplot2等高線プロットのカスタムレベル?ここで
- 19. MATLAB異なるプロットから等高線マップをプロットする
- 20. 最大9つの数字を見つける - 高速
- 21. 3つのベクトルから等高線プロットを作成
- 22. 3Dプロットの2つの線の間の色付け
- 23. 同色の散布プロットおよび等高線プロット
- 24. Python Matplotlib等高線プロットの非線形スケーリング
- 25. 関数を使用した等高線プロット
- 26. ハーツゲーム - 同じスーツの最高値カードを見つける
- 27. 3つの連続変数からの等高線プロットまたはヒートマップ
- 28. 3Dの線の2番目の点を見つける
- 29. 最大公約数を見つけるための線形時間アルゴリズム
- 30. 等高線と等高線のスケールを調整する
?任意の2点間の最大距離?長さ? – jmetz
最大周辺距離 – user6457831