Tracé avec moins de marqueurs que les points de données (ou une meilleure façon de tracer les CDF?) [Matplotlib, ou une aide générale de traçage

StackOverflow https://stackoverflow.com/questions/2040306

Question

Je trace les fonctions de distribution cumulative, avec un grand nombre de points de données. Je trace quelques lignes sur le même tracé, qui sont identifiés avec des marqueurs car il sera imprimé en noir et blanc. Ce que je voudrais, ce sont des marqueurs également espacés dans la dimension X. Ce que j'obtiens est un marqueur par point de données (et compte tenu du nombre de points, ils se chevauchent tous)

Je ne sais pas si c'est ma compréhension de la façon de bien tracer, ou tout simplement un manque de compréhension de Matplotlib. Je ne trouve pas un paramètre de «fréquence de marqueur».

Une solution facile pour une ligne serait de prendre toutes les valeurs n'habande longueurs.

# in reality, many thousands of values
x_example = [ 567, 460, 66, 1034, 275, 26, 628, 99, 287, 157, 705, 421, 1093, \ 
     139, 204, 14, 240, 179, 94, 139, 645, 670, 47, 520, 891, 450, 56, 964,   \
     1728, 99, 277, 356, 1628, 745, 364, 88, 112, 810, 816, 523, 401, 89,     \ 
     278, 917, 370, 53, 39, 90, 853, 356 ] 
x = sort(x_example)
y = linspace(0,1,len(x))

ax = subplot(1,1,1)
plots[w] = ax.plot(x,y, marker='o')
Était-ce utile?

La solution

Tu peux faire plot(x,y,marker='o',markevery=5) Pour marquer chaque cinquième point, mais je ne pense pas qu'il y ait un support intégré pour fixer des marques à intervalles égaux. Vous pouvez décider des emplacements X où vous voulez les marques, utilisez par exemple numpy.searchsorted Pour trouver les points de données, les emplacements se situent entre les emplacements, puis interpoler entre les points voisins pour trouver les coordonnées Y.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top