[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 !
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 120
Inscription : 23 déc. 2015 19:49
Localisation : Annecy
Contact :

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

Message par ddorange »

Bonjour,

La bibliothèque matplotlib permet de tracer des courbes.

Le script :

Code : Tout sélectionner

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 obtenue avec matplotlib
Courbe obtenue avec matplotlib
Pour les raisons évoquées ici : https://forum.openoffice.org/fr/forum/v ... =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 modification par ddorange le 09 janv. 2018 11:37, modifié 4 fois.
LibreOffice 7.5 et OpenOffice 4.1.14 sous Ubuntu 22.10, Windows 7, Windows 10, MacOs Monterey
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 09:26

Re: [Python] Comment tracer une courbe

Message par Hubert Lambert »

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é 142 fois
AOOo 4.1.7 sur Win10
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
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 623
Inscription : 10 août 2017 00:15

Re: [Python] Comment tracer une courbe

Message par Jurassic Pork »

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

getFormat(oChartDoc,"0,00")
avec dans getFormat :

Code : Tout sélectionner

Loc = Locale("fr","FR","")
et pour le problème d'affichage la commande magique :

Code : Tout sélectionner

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é 151 fois
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 120
Inscription : 23 déc. 2015 19:49
Localisation : Annecy
Contact :

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

Message par ddorange »

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é 120 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 7.5 et OpenOffice 4.1.14 sous Ubuntu 22.10, Windows 7, Windows 10, MacOs Monterey
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 120
Inscription : 23 déc. 2015 19:49
Localisation : Annecy
Contact :

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

Message par ddorange »

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

' 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 vous 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 7.5 et OpenOffice 4.1.14 sous Ubuntu 22.10, Windows 7, Windows 10, MacOs Monterey
Verrouillé