gpt4 book ai didi

python - 如何从每条轮廓线上找到并连接最大点

转载 作者:行者123 更新时间:2023-12-04 07:30:41 25 4
gpt4 key购买 nike

如何找到等高线图生成的曲线的最大点,然后将它们连接起来?

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(263, 383, 0.001)
r=np.arange(0.1,0.9,0.1)
T, R = np.meshgrid(t, r)
k1=np.exp(17.34-(48900./(8.314*T)))
k2=np.exp(42.02-(124200./(8.314*T)))
XA=(k1-R)/(k1+k2)
plt.contour(T,XA,R)
plt.axis([263,383,0,1])
plt.show()
contour curves

最佳答案

  • 提取索引,idx , 来自数组 XA 每一行的最大值
  • 使用 idxTXA提取 x 轴和 y 轴值。
  • 索引数组比使用 y = XA.max(axis=1) 稍微快一点获取 max XA值。

  • XA的形状是 (8, 120000) ,所以有 8 个最大值。我不确定为什么只显示 7 条轮廓线。
  • 使用 x[:-1]y[:-1]不绘制最后一点。


  • # get index of max value for each row
    idx = np.argmax(XA, axis=1)
    # use idx to get the x-axis values from T that correspond to max XA
    x = np.take_along_axis(T, np.expand_dims(idx, axis=-1), axis=-1).squeeze(axis=-1)
    # use idx to get the max y-axis values from XA
    y = np.take_along_axis(XA, np.expand_dims(idx, axis=-1), axis=-1).squeeze(axis=-1)

    # plot
    plt.contour(T,XA,R)
    plt.plot(x, y, marker='o') # plot the points
    plt.axis([263,383,0,1])
    plt.show()
    enter image description here

    关于python - 如何从每条轮廓线上找到并连接最大点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67952913/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com