[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 : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

[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.png
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 ?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par ddorange le 09 janv. 2018 10:37, modifié 4 fois.
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07: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.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
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 : 629
Inscription : 09 août 2017 22: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
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
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 : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

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
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.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

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 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma