Контурная диаграмма из данных xy в python - PullRequest
0 голосов
/ 12 июня 2018

Я хочу построить контурные линии для двумерных данных (xy), представляющих 68%, 95%, 99,7% данных.Мой вопрос почти похож на этот вопрос , но у меня нет значений по оси Z.Есть ли возможность сделать это в python?(Это половина кода)

from scipy.stats import gaussian_kde
import matplotlib.pyplot as plt
import numpy as np

x = X_data
y = Y_data

k = gaussian_kde(np.vstack([X_data, Y_data]))
xi, yi = np.mgrid[x.min():x.max():x.size**0.5*1j,y.min():y.max():y.size**0.5*1j]
zi = k(np.vstack([xi.flatten(), yi.flatten()]))

#set zi to 0-1 scale
zi = (zi-zi.min())/(zi.max() - zi.min())
zi =zi.reshape(xi.shape)
plt.plot(X_data, Y_data, 'bo', ms =1)
#set up plot
origin = 'lower'
levels = [0,0.1,0.25,0.5,0.68, 0.95, 0.975,1]

CS = plt.contour(xi, yi, zi,levels = levels,
          colors=('k',),
          linewidths=(3,),
          origin=origin)

plt.clabel(CS, fmt='%.3f', colors='b', fontsize=8)
plt.xlabel(r'$X_{data} [V]$', fontsize=fontall)
plt.ylabel(r'$Y_{data} [A]$', fontsize=fontall)
plt.ticklabel_format(axis='y', style='sci', scilimits=(0,0))
plt.show()

и я получил эту цифру:
Output

Я хочу понять, это правильный результат?Я хочу видеть уровни контуров, которые представляют 68%, 95% и 99,7% моих данных.

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