Преобразование 1-D векторов x, y, z в двумерную сетку - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть набор пространственных данных, которые изначально находятся в 3 столбцах данных - x, y, z

Пожалуйста, запустите этот код и посмотрите, как выглядят данные.

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

data = pd.DataFrame(np.array([[50. , 50. ,  0.3],
       [55. , 25. , -1.5],
       [ 6.6, 47.4,  0.1],
       [35. , 34.9,  1. ],
       [32.7, 56.3,  1.9]]), columns=['x', 'y', 'z'])

x = data['x']
y = data['y']
z = data['z']

def plot_sparse(x, y, z, ax, dist_max, **kwargs):

    assert len(x) == len(y) == len(z), "x, y, and z must have the same dimension"

    sc = ax.scatter(x, y, c=z, **kwargs)
    ax.set_aspect("equal")
    ax.set_xlim(0, dist_max)
    ax.set_ylim(0, dist_max)

    return sc

fig, ax = plt.subplots()
sc = plot_sparse(x, y, z, ax=ax, dist_max=80)
fig.colorbar(sc)

Iхочу повторить рисунок, сгенерированный с помощью meshgrid:

[X, Y] = np.meshgrid(x, y)

fig, ax = plt.subplots()
sc = ax.scatter(x, y)
ax.set_aspect("equal")
ax.set_xlim(0, 80)
ax.set_ylim(0, 80)

Но я не знаю, как встраивать значения оси z в сетку сетки.Приведенный выше код, использующий сетку сетки, не будет иметь цветовой полосы на двухмерном графике поверхности, но я хочу создать цветную полосу с использованием типа данных сетки.

Как это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...