Je sais que cette question date de quelques années, mais comme il n'y a pas de réponse reconnue, je vais ajouter ce qui fonctionne pour moi.
Vous pouvez simplement reporter les valeurs dans votre graphique, puis générer un autre ensemble de valeurs pour les coordonnées de la ligne de meilleur ajustement et les reporter sur votre graphique original. Par exemple, voyez le code suivant :
import matplotlib.pyplot as plt
import numpy as np
# Some dummy data
x = [1, 2, 3, 4, 5, 6, 7]
y = [1, 3, 3, 2, 5, 7, 9]
# Find the slope and intercept of the best fit line
slope, intercept = np.polyfit(x, y, 1)
# Create a list of values in the best fit line
abline_values = [slope * i + intercept for i in x]
# Plot the best fit line over the actual values
plt.plot(x, y, '--')
plt.plot(x, abline_values, 'b')
plt.title(slope)
plt.show()
4 votes
Non, il n'y en a pas. Ce serait une fonction pratique à avoir. Il y a
axvline
,axvspan
,axhline
etaxhspan
qui sont des fonctions verticales et horizontales similaires, mais la méthode habituelle dans matplotlib consiste à tracer une ligne à la pente donnée (ce qui signifie que vous finirez par zoomer au-delà, si vous travaillez de manière interactive). La manière "correcte" de le faire (c'est-à-dire de manière à ce que la ligne s'étende toujours sur l'axe, peu importe où vous zoomez) est en fait un peu compliquée, bien que le cadre (matplotlib.transforms
) est là.1 votes
Oui, c'est malheureux... Matlab ne dispose pas non plus de cette fonction. D'un autre côté, les graphiques de R sont statiques (la fonction
base
système graphique pour lequelabline
existe), donc moins de soucis à se faire (c'est une bonne et une mauvaise chose, je suppose).