Bonjour,
Je travail actuellement sur un programme générant des "capability plot".
Sans rentrer dans les détails, le programme à pour objectif de calculer la puissance motrice nécessaire à un navire pour maintenir sa position face à un environnement donné. Cette puissance est calculée pour différentes incidences de vagues (venant de l'avant, de côté, etc...). Le résultat attendu est sous la forme d'un graphique polaire que l'on nomme "Capability plot" reflettant simplement la capacité du navire a tenir sa position.
Mon programme fonctionne bien et je m'attaque à la partie "graphique" et notamment au graph.
Voici un lien menant vers un exemple typique de ce vers quoi j'aimerais aller:
http://www.medeadesign.com/wp-conten...ility_plot.jpg
Je n'ai pas de réelle question à vous poser. Je cherche plutôt de bons tutos ou une bonne doc (simple si possible, je ne suis pas programmeur) pour m'aider à tracer des graphs polaires avec matplotlib.
J'ai pas mal fouillé le net sur la question, mais je dois dire que mes recherches n'ont pas donné grand chose si ce n'est l'excellent site suivant:
http://www.loria.fr/~rougier/teaching/matplotlib/
Je suis capable de tracer un graph polaire, mais je ne sais pas faire les choses suivantes:
- Placer un "cartouche" à gauche contenant des infos sur les inputs
- Choisir l'emplacement des ticks (par défaut ils ne sont pas sur un axe vertical ni horizontal...)
- Choisir le nom des labels
Bref, mis à part tracer basiquement le graph, je ne sais rien faire!
Merci pour votre éventuelle aide!
ju
Edit:
Voici quelques astuces trouvées (ça pourrait aider quelqu'un):
Définition du graph:
sp = plt.subplot(1, 1, 1, projection='polar')
Changer l'orientation du graph:
sp.set_theta_zero_location('N')
Changer la direction angulaire (sens horaire ou anti-horaire):
sp.set_theta_direction(-1)
Définir manuellement les bornes (rayon min et max), ici de 0 à 100:
Définir le "pas" pour les labels ici de 0 à 100 par pas de 20:
sp.set_yticks(np.arange(0,120,20))
Choisir le pas angulaire et le nom des labels:
1 2 3
| # AngleList: liste des angles en degré
# LabelList: liste des labels (strings) associés aux angles
sp.set_thetagrids(AngleList,LabelList, fmt='%d', frac=1.1) |
Placer du texte:
1 2 3
| # angle: Position angulaire en radian ou sera placé le texte
# radius: Position radiale ou sera placé le texte
plt.text(angle,radius,'text') |
Voilà... Je continue mes recherches sur le sujet.
Partager