[Résolu][Python] Comment tracer une courbe (avec ou sans)

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur: Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !

[Résolu][Python] Comment tracer une courbe (avec ou sans)

Messagepar ddorange » 04 Jan 2018 06:46

Bonjour,

La bibliothèque matplotlib permet de tracer des courbes.

Le script :
Code : Tout sélectionner   AgrandirRéduire
from pylab import *

def f(x):
    return x**2
   
def Courbe():
   x = linspace(-5, 5, 30)
   return "2"
   
x = linspace(-5, 5, 30)
y = f(x)
plot(x, y, "k")
xlabel("abscisses")
ylabel("ordonnees")
grid(True)
savefig("courbe.png")
show()


donne la courbe :
courbe.png
Courbe obtenue avec matplotlib


Pour les raisons évoquées ici : https://forum.openoffice.org/fr/forum/viewtopic.php?f=8&t=56601, la bibliothèque matplotlib ne semble pas portable dans une extension.

Y-a-t-il d'autres pistes pour tracer une courbe avec Python ?
Dernière édition par ddorange le 09 Jan 2018 11:37, édité 4 fois.
LibreOffice 6.3 et OpenOffice 4.1.6 sous Ubuntu 19.04, Windows 7, MacOsSierra
Avatar de l’utilisateur
ddorange
Membre lOOyal
Membre lOOyal
 
Message(s) : 49
Inscrit le : 23 Déc 2015 19:49
Localisation : Annecy

Re: [Python] Comment tracer une courbe

Messagepar Hubert Lambert » 04 Jan 2018 17:30

Bonjour,

Ci-joint un exemple, en opérant la fusion entre le code de Jurassic Pork (ici) et celui de spYre (ici) :
ddorange.png

Cordialement.
Pièces jointes
graphique.odt
(12.42 Kio) Téléchargé 53 fois
AOOo 4.1.2 sur Win7
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
 
Message(s) : 1125
Inscrit le : 06 Avr 2016 08:26

Re: [Python] Comment tracer une courbe

Messagepar Jurassic Pork » 04 Jan 2018 18:00

hello,
finalement j'ai résolu les deux problèmes que j'avais dans mon code de l'autre post :
1 - Pour le plantage sous linux :
je passe en mode français pour getFormat, c'est à dire que j'utilise la virgule :
Code : Tout sélectionner   AgrandirRéduire
getFormat(oChartDoc,"0,00")

avec dans getFormat :
Code : Tout sélectionner   AgrandirRéduire
Loc = Locale("fr","FR","")

et pour le problème d'affichage la commande magique :
Code : Tout sélectionner   AgrandirRéduire
oEmbeded.ExtendedControlOverEmbeddedObject.doVerb(0)

la macro s'appelle testddorange et se trouve dans le module python FabCourbes embarqué dans le fichier joint TracéCourbePython.odt.
TracéCourbePython.png

Cela fonctionne sous Windows 7 avec LibreOffice 5.2.7.2 et OpenOffice 4.1.3 et sous Ubuntu 16.04 64 bits LibreOffice 5.4.3.
Un petit problème d'accent avec OpenOffice pour ordonnée à cause certainement du python 2.

Ami calmant, J.P
Pièces jointes
TracéCourbePython.odt
(12.69 Kio) Téléchargé 42 fois
LibreOffice 6.1.x sous windows 10 et LibreOffice 6.0.x sous linux - OpenOffice 4.1.5 sous windows 10
Avatar de l’utilisateur
Jurassic Pork
Membre cOOnfirmé
Membre cOOnfirmé
 
Message(s) : 226
Inscrit le : 09 Août 2017 23:15

Re: [Résolu][Python] Comment tracer une courbe (avec ou sans

Messagepar ddorange » 07 Jan 2018 08:49

Bonjour,

Je me suis amusé à transcrire la proposition d'Hubert en Basic. Cela fonctionne.
graphique2.odt
Codage en Basic
(144.93 Kio) Téléchargé 36 fois

Du coup, pour tracer des courbes de type Chart, Python n'est peut-être pas utile.

Pour résumer les pistes explorées, on peut soit :
- utiliser la bibliothèque matplotlib de Python. Le codage est plus simple, on obtient une image
- utiliser Chart, (avec ou sans Python), code plus long mais le Chart inséré est éditable pour des retouches manuelles.

J'ai marqué le fil comme résolu.
Encore merci pour votre aide.
Cordialement.
LibreOffice 6.3 et OpenOffice 4.1.6 sous Ubuntu 19.04, Windows 7, MacOsSierra
Avatar de l’utilisateur
ddorange
Membre lOOyal
Membre lOOyal
 
Message(s) : 49
Inscrit le : 23 Déc 2015 19:49
Localisation : Annecy

Re: [Python] Comment tracer une courbe (avec ou sans)

Messagepar ddorange » 09 Jan 2018 11:26

Bonjour,

J'ai fait de nombreuses recherches dans l'API. J'arrive à paramétrer la courbe tracée (couleur, pointillés, échelle des axes ...).
Par contre, je n'ai pas trouvé comment faire pour tracer plusieurs courbes dans le même graphique. Par exemple comment ajouter la courbe d'équation y = 0.5*x^2+1.

Le code incriminé est :
Code : Tout sélectionner   AgrandirRéduire
' génération des données
   Dim v(1)
   Dim data(30)
   For I = 0 To 30
      v(0) = -5 + (5-(-5))*I/30
      v(1) = F(v(0))
      data(I) = Array(v(0),v(1))
   Next I
   chartdata = graphique.data
   chartdata.setData(data)
   cdes = Array("","y = x**2 ")
   chartdata.ColumnDescriptions = cdes


Avez-vous une idée ?
Merci d'avance.

La modération a écrit:Toujours pas habitué aux règles.
Le code donné est du Basic et plus du Python donc : nouveau problème = nouveau fil !
LibreOffice 6.3 et OpenOffice 4.1.6 sous Ubuntu 19.04, Windows 7, MacOsSierra
Avatar de l’utilisateur
ddorange
Membre lOOyal
Membre lOOyal
 
Message(s) : 49
Inscrit le : 23 Déc 2015 19:49
Localisation : Annecy


Retour vers Macros et API

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : MSN [Bot] et 9 invité(s)