Matplotlib - Нарисуйте линии H и V, указав значение X или Y на графике - PullRequest
0 голосов
/ 10 октября 2019

Мне было интересно сегодня о том, как найти конкретное значение на графике и нарисовать правильную линию, которая соответствует. Раньше я делал это на старой библиотеке графиков, и мне было интересно, что, возможно, эта функциональность существует, но я не знаю, как ее найти. Результат должен выглядеть следующим образом: https://miro.medium.com/max/1070/1*Ckhi9soE9Lx2lIf9tPVLMQ.png

Чтобы обеспечить некоторый контекст, я делаю PCA над моими данными, и я хотел бы указать некоторые пороги на 97,5, 99 и 99,5% объясненной совокупностидисперсия.

Хорошего дня!

РЕДАКТИРОВАТЬ: см. ответ

1 Ответ

0 голосов
/ 10 октября 2019

В соответствии с решением ImportanceOfBeingErnest, вот код:

whole_pca = PCA().fit(np.array(inputs['Scale'].tolist()))
cumul = np.cumsum(np.round(whole_pca.explained_variance_ratio_, decimals=3)*100)
over_95 = np.argmax(cumul>95)
over_99 = np.argmax(cumul>99)
over_995 = np.argmax(cumul>99.5)
plt.plot(cumul)
plt.plot([0,over_95,over_95], [95,95,0])
plt.plot([0,over_99,over_99], [99,99,0])
plt.plot([0,over_995,over_995], [99.5,99.5,0])
plt.xlim(left=0)
plt.ylim(bottom=80)
plt.ylabel('% Variance Explained')
plt.xlabel('# of Features')
plt.title('PCA Analysis')

Результат: enter image description here Спасибо!

...