Я хочу построить контурные линии для двумерных данных (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()
и я получил эту цифру:
Я хочу понять, это правильный результат?Я хочу видеть уровни контуров, которые представляют 68%, 95% и 99,7% моих данных.