web-dev-qa-db-fra.com

Comment tracer un seul point de données?

J'ai le code suivant pour tracer une ligne et un point:

df = pd.DataFrame({'x': [1, 2, 3], 'y': [3, 4, 6]})
point = pd.DataFrame({'x': [2], 'y': [5]})
ax = df.plot(x='x', y='y', label='line')
ax = point.plot(x='x', y='y', ax=ax, style='r-', label='point')

Comment faire apparaître le point de données unique?

Plot with line and no point

21
Peter Knutsen

Lorsque vous tracez un seul point de données, vous ne pouvez pas tracer à l'aide de lignes. Cela est évident quand on y pense, car lorsque vous tracez des lignes, vous tracez réellement entre points de données, et donc si vous n'avez qu'un seul point de données, vous avez rien pour connecter votre ligne.

Vous pouvez cependant tracer des points de données uniques à l'aide de marqueurs, ceux-ci sont généralement tracés directement sur le point de données et il n'a donc pas d'importance si vous n'avez qu'un seul point de données.

Au moment où vous utilisez

ax = point.plot(x='x', y='y', ax=ax, style='r-', label='point')

comploter. Cela produit une ligne rouge (r pour le rouge, - pour la ligne). Si vous utilisez le code suivant, vous obtiendrez des croix bleues (b pour le bleu, x pour une croix).

ax = point.plot(x='x', y='y', ax=ax, style='bx', label='point')

pandas utilise matplotlib en interne pour le traçage, vous pouvez trouver les différents arguments de style dans les tableaux ici . Pour choisir entre les différents styles (si, par exemple, vous ne vouliez pas de marqueurs lorsque vous avez plusieurs points de données), vous pouvez simplement vérifier la longueur de l'ensemble de données, puis utiliser le style approprié.

4
Ffisegydd

Pour tracer un seul point, vous pouvez faire quelque chose comme ceci:

plt.plot([x], [y], marker='o', markersize=3, color="red")
75
Andrei Pokrovsky