(x,y,z)列表值的轮廓

问题描述 投票:1回答:2

在python中,我可以通过以下方式获得轮廓:

import numpy as np
import pylab as p


def main():

    delta = 1
    x = np.arange(-4.0, 4.0, delta)
    y = np.arange(-4.0, 4.0, delta)

    len_x, len_y = len(x), len(y)
    z = np.random.rand(len_x, len_y)

    cs = p.contour(x, y, z)
    p.clabel(cs, inline=1, fontsize=10)

    p.show()


if __name__ == '__main__':
    main()

ss

如何获得(x, y, z)值列表的轮廓?

    delta = 1
    x = np.arange(-4.0, 4.0, delta)
    y = np.arange(-4.0, 4.0, delta)

    values = [(x0, y0, z0), (x1, y1, z1), (x3, y3, z3)]

    cs = p.contour(x, y, values)

编辑

列表中的值很少,少于len_x * len_y

python plot contour
2个回答
1
投票

假设您只是想弄清楚如何用contour()列表填充values

p.contour(*zip(*values))

0
投票

我找到这个解决方案

import numpy as np
import pylab as p
from matplotlib.mlab import griddata


def main():

    p.figure()

    x = [1, 1, 2, 2]
    y = [1, 2, 1, 2]
    z = [0.1, 0.2, 0.5, 0.2]

    p.scatter(x, y, color='k')

    # define grid.
    xi = np.linspace(0, 3, 1000)
    yi = np.linspace(0, 3, 1000)
    zi = griddata(x, y, z, xi, yi, interp='nn')
    cs = p.contour(xi, yi, zi, 10)
    p.clabel(cs, inline=1, fontsize=12)
    p.colorbar()

    p.show()


if __name__ == '__main__':
    main()

ss

© www.soinside.com 2019 - 2024. All rights reserved.