Après, il faut voir si l'objectif de fred (l'autre, chez gmail - à moins que ça ne soit toi aussi) est d'avoir un graphique en résultat, ou bien d'apprendre comment on crée un graphique "en bas niveau" (pas trop bas non plus).
Sinon, tu peux aussi utiliser pygnuplot, c'est fait pour tracer des courbes.
http://gnuplot-py.sourceforge.net/
http://www.gnuplot.info/download.html
Chaco2:
http://code.enthought.com/chaco
Bookmarqué - ça semble très sympa, et puissant (ajout d'outils au choix
sur la fenêtre d'affichage du graphique).
Après, il faut voir si l'objectif de fred (l'autre, chez gmail - à moins
que ça ne soit toi aussi) est d'avoir un graphique en résultat, ou bien
d'apprendre comment on crée un graphique "en bas niveau" (pas trop bas
non plus).
Après, il faut voir si l'objectif de fred (l'autre, chez gmail - à moins que ça ne soit toi aussi) est d'avoir un graphique en résultat, ou bien d'apprendre comment on crée un graphique "en bas niveau" (pas trop bas non plus).
fred1599
Merci pour vos réponses,
Le but de ces questions est d'apprendre et non de créer, pour cela je me fixe un objectif et j'essai de le faire jusqu'au bout mais ça n'arrive pas toujours à terme.
Je vais tester gnuplot pourquoi pas
Sinon, tu peux aussi utiliser pygnuplot, c'est fait pour tracer des co urbes. http://gnuplot-py.sourceforge.net/ http://www.gnuplot.info/download.html
Chaco2:
http://code.enthought.com/chaco
Bookmarqué - ça semble très sympa, et puissant (ajout d'outils au c hoix sur la fenêtre d'affichage du graphique).
Après, il faut voir si l'objectif de fred (l'autre, chez gmail - à mo ins que ça ne soit toi aussi) est d'avoir un graphique en résultat, ou bi en d'apprendre comment on crée un graphique "en bas niveau" (pas trop bas non plus).
Merci pour vos réponses,
Le but de ces questions est d'apprendre et non de créer, pour cela je
me fixe un objectif et j'essai de le faire jusqu'au bout mais ça
n'arrive pas toujours à terme.
Je vais tester gnuplot pourquoi pas
Sinon, tu peux aussi utiliser pygnuplot, c'est fait pour tracer des co urbes.
http://gnuplot-py.sourceforge.net/
http://www.gnuplot.info/download.html
Chaco2:
http://code.enthought.com/chaco
Bookmarqué - ça semble très sympa, et puissant (ajout d'outils au c hoix
sur la fenêtre d'affichage du graphique).
Après, il faut voir si l'objectif de fred (l'autre, chez gmail - à mo ins
que ça ne soit toi aussi) est d'avoir un graphique en résultat, ou bi en
d'apprendre comment on crée un graphique "en bas niveau" (pas trop bas
non plus).
Le but de ces questions est d'apprendre et non de créer, pour cela je me fixe un objectif et j'essai de le faire jusqu'au bout mais ça n'arrive pas toujours à terme.
Je vais tester gnuplot pourquoi pas
Sinon, tu peux aussi utiliser pygnuplot, c'est fait pour tracer des co urbes. http://gnuplot-py.sourceforge.net/ http://www.gnuplot.info/download.html
Chaco2:
http://code.enthought.com/chaco
Bookmarqué - ça semble très sympa, et puissant (ajout d'outils au c hoix sur la fenêtre d'affichage du graphique).
Après, il faut voir si l'objectif de fred (l'autre, chez gmail - à mo ins que ça ne soit toi aussi) est d'avoir un graphique en résultat, ou bi en d'apprendre comment on crée un graphique "en bas niveau" (pas trop bas non plus).
jean-michel bain-cornu
Bonjour,
Vous pensez bien que ce n'est pas terminé, j'aimerais créer la sinusoide.
Pourriez vous m'expliquer la demarche SVP. Tu peux le faire avec wx, même si les modules déjà cités sont
probablement beaucoup plus adaptés.
Exemple :
import math,wx #---------------------------------------------------------------------- class DrawPanel(wx.Panel): def __init__(self, parent): wx.Panel.__init__(self, parent, -1) self.SetBackgroundColour(wx.WHITE) self.Bind(wx.EVT_PAINT, self.OnPaint) self.points = [] x= float(0) for n in range(10000): x+= 0.25 k= float(n)/100 self.points.append((int(x),int(math.sin(k)*100)+100)) def OnPaint(self, evt): dc = wx.PaintDC(self) dc.BeginDrawing() dc.Clear() dc.SetPen(wx.Pen("BLACK", 4)) dc.DrawPointList(self.points) dc.EndDrawing() #---------------------------------------------------------------------- app= wx.PySimpleApp() frame=wx.Frame(None,wx.ID_ANY,'Test') panel= DrawPanel(frame) frame.Show() app.MainLoop() #----------------------------------------------------------------------
Bonjour,
Vous pensez bien que ce n'est pas terminé, j'aimerais créer la
sinusoide.
Pourriez vous m'expliquer la demarche SVP.
Tu peux le faire avec wx, même si les modules déjà cités sont
probablement beaucoup plus adaptés.
Exemple :
import math,wx
#----------------------------------------------------------------------
class DrawPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent, -1)
self.SetBackgroundColour(wx.WHITE)
self.Bind(wx.EVT_PAINT, self.OnPaint)
self.points = []
x= float(0)
for n in range(10000):
x+= 0.25
k= float(n)/100
self.points.append((int(x),int(math.sin(k)*100)+100))
def OnPaint(self, evt):
dc = wx.PaintDC(self)
dc.BeginDrawing()
dc.Clear()
dc.SetPen(wx.Pen("BLACK", 4))
dc.DrawPointList(self.points)
dc.EndDrawing()
#----------------------------------------------------------------------
app= wx.PySimpleApp()
frame=wx.Frame(None,wx.ID_ANY,'Test')
panel= DrawPanel(frame)
frame.Show()
app.MainLoop()
#----------------------------------------------------------------------
J'ai créé un module pour cela (il date un peu, mais ça marche plutôt bien) géoPyX, basé sur PyX:
Pour ta sinusoïde, voilà la sortie en pdf :
http://kib2.free.fr/temp/sinus_graphe.pdf
A noter que c'est plutôt fait pour inclure dans des documents LaTeX.
Kib².
jean-michel bain-cornu
Bonjour,
Vous pensez bien que ce n'est pas terminé, j'aimerais créer la sinusoide.
Pourriez vous m'expliquer la demarche SVP. Tu peux le faire avec wx, même si les modules déjà cités sont
probablement beaucoup plus adaptés.
Exemple :
Je me relis, et je me dis que ce doit être bien ésotérique pour un débutant. Voici donc le même, un peu simplifié (si peu), et avec des commentaires.
# -*- coding: iso-8859-1 -*- import math,wx # wx doit être installé, voir www.wxpython.org #---------------------------------------------------------------------- class DrawPanel(wx.Panel): # wx.Panel est simplement un conteneur d'objets # __init__ est le constructeur def __init__(self, parent): wx.Panel.__init__(self, parent) # appel du constructeur de wx.Panel self.SetBackgroundColour(wx.WHITE) self.Bind(wx.EVT_PAINT, self.OnPaint) # gérer évènement wx.EVT_PAINT dans OnPaint #--construction coordonnées des points de la sinusoïde self.points = [] x= float(0) # x est l'abscisse for n in range(10000): x+= 0.25 k= float(n)/100 y= (math.sin(k)*100)+100 # y est l'ordonnée self.points.append((int(x),int(y))) # OnPaint est appelée à chaque affichage def OnPaint(self, evt): dc = wx.PaintDC(self) # wx.PaintDC est un contexte de dispositif dc.BeginDrawing() dc.Clear() # effacement de la zone d'affichage dc.SetPen(wx.Pen("BLACK")) # on dit qu'on va écrire en noir dc.DrawPointList(self.points) # on écrit les points dont les coordonnées sont dans self.points dc.EndDrawing() #---------------------------------------------------------------------- app= wx.PySimpleApp() # app va gérer la procédure de fenêtre frame=wx.Frame(None,wx.ID_ANY,'Test') # création de la fenêtre de base panel= DrawPanel(frame) # création du conteneur d'objets frame.Show() # afficher frame app.MainLoop() # entrer dans la boucle d'évènements #----------------------------------------------------------------------
Bonjour,
Vous pensez bien que ce n'est pas terminé, j'aimerais créer la
sinusoide.
Pourriez vous m'expliquer la demarche SVP.
Tu peux le faire avec wx, même si les modules déjà cités sont
probablement beaucoup plus adaptés.
Exemple :
Je me relis, et je me dis que ce doit être bien ésotérique pour un
débutant. Voici donc le même, un peu simplifié (si peu), et avec des
commentaires.
# -*- coding: iso-8859-1 -*-
import math,wx # wx doit être installé, voir www.wxpython.org
#----------------------------------------------------------------------
class DrawPanel(wx.Panel): # wx.Panel est simplement un conteneur d'objets
# __init__ est le constructeur
def __init__(self, parent):
wx.Panel.__init__(self, parent) # appel du constructeur de
wx.Panel
self.SetBackgroundColour(wx.WHITE)
self.Bind(wx.EVT_PAINT, self.OnPaint) # gérer évènement
wx.EVT_PAINT dans OnPaint
#--construction coordonnées des points de la sinusoïde
self.points = []
x= float(0) # x est l'abscisse
for n in range(10000):
x+= 0.25
k= float(n)/100
y= (math.sin(k)*100)+100 # y est l'ordonnée
self.points.append((int(x),int(y)))
# OnPaint est appelée à chaque affichage
def OnPaint(self, evt):
dc = wx.PaintDC(self) # wx.PaintDC est un contexte de dispositif
dc.BeginDrawing()
dc.Clear() # effacement de la zone d'affichage
dc.SetPen(wx.Pen("BLACK")) # on dit qu'on va écrire en noir
dc.DrawPointList(self.points) # on écrit les points dont les
coordonnées sont dans self.points
dc.EndDrawing()
#----------------------------------------------------------------------
app= wx.PySimpleApp() # app va gérer la procédure de fenêtre
frame=wx.Frame(None,wx.ID_ANY,'Test') # création de la fenêtre de base
panel= DrawPanel(frame) # création du conteneur d'objets
frame.Show() # afficher frame
app.MainLoop() # entrer dans la boucle d'évènements
#----------------------------------------------------------------------
Vous pensez bien que ce n'est pas terminé, j'aimerais créer la sinusoide.
Pourriez vous m'expliquer la demarche SVP. Tu peux le faire avec wx, même si les modules déjà cités sont
probablement beaucoup plus adaptés.
Exemple :
Je me relis, et je me dis que ce doit être bien ésotérique pour un débutant. Voici donc le même, un peu simplifié (si peu), et avec des commentaires.
# -*- coding: iso-8859-1 -*- import math,wx # wx doit être installé, voir www.wxpython.org #---------------------------------------------------------------------- class DrawPanel(wx.Panel): # wx.Panel est simplement un conteneur d'objets # __init__ est le constructeur def __init__(self, parent): wx.Panel.__init__(self, parent) # appel du constructeur de wx.Panel self.SetBackgroundColour(wx.WHITE) self.Bind(wx.EVT_PAINT, self.OnPaint) # gérer évènement wx.EVT_PAINT dans OnPaint #--construction coordonnées des points de la sinusoïde self.points = [] x= float(0) # x est l'abscisse for n in range(10000): x+= 0.25 k= float(n)/100 y= (math.sin(k)*100)+100 # y est l'ordonnée self.points.append((int(x),int(y))) # OnPaint est appelée à chaque affichage def OnPaint(self, evt): dc = wx.PaintDC(self) # wx.PaintDC est un contexte de dispositif dc.BeginDrawing() dc.Clear() # effacement de la zone d'affichage dc.SetPen(wx.Pen("BLACK")) # on dit qu'on va écrire en noir dc.DrawPointList(self.points) # on écrit les points dont les coordonnées sont dans self.points dc.EndDrawing() #---------------------------------------------------------------------- app= wx.PySimpleApp() # app va gérer la procédure de fenêtre frame=wx.Frame(None,wx.ID_ANY,'Test') # création de la fenêtre de base panel= DrawPanel(frame) # création du conteneur d'objets frame.Show() # afficher frame app.MainLoop() # entrer dans la boucle d'évènements #----------------------------------------------------------------------
fred1599
Bonjour,
Merci pour ton programme qui est fort intéressant, je le relis et te dis ce que je ne comprend pas.
Mais avant j'ai une opération qui m'a choquée, c'est "x+=0,25" que je ne comprend pas.
Peux-tu m'expliquer?
Bonjour,
Vous pensez bien que ce n'est pas terminé, j'aimerais créer la sinusoide.
Pourriez vous m'expliquer la demarche SVP. Tu peux le faire avec wx, même si les modules déjà cités sont
probablement beaucoup plus adaptés.
Exemple :
Je me relis, et je me dis que ce doit être bien ésotérique pour un débutant. Voici donc le même, un peu simplifié (si peu), et avec des commentaires.
# -*- coding: iso-8859-1 -*- import math,wx # wx doit être installé, voir www.wxpython.org #---------------------------------------------------------------------- class DrawPanel(wx.Panel): # wx.Panel est simplement un conteneur d'obje ts # __init__ est le constructeur def __init__(self, parent): wx.Panel.__init__(self, parent) # appel du constructeur de wx.Panel self.SetBackgroundColour(wx.WHITE) self.Bind(wx.EVT_PAINT, self.OnPaint) # gérer évènement wx.EVT_PAINT dans OnPaint #--construction coordonnées des points de la sinusoïde self.points = [] x= float(0) # x est l'abscisse for n in range(10000): x+= 0.25 k= float(n)/100 y= (math.sin(k)*100)+100 # y est l'ordonnée self.points.append((int(x),int(y))) # OnPaint est appelée à chaque affichage def OnPaint(self, evt): dc = wx.PaintDC(self) # wx.PaintDC est un contexte de disposi tif dc.BeginDrawing() dc.Clear() # effacement de la zone d'affichage dc.SetPen(wx.Pen("BLACK")) # on dit qu'on va écrire en noir dc.DrawPointList(self.points) # on écrit les points dont les coordonnées sont dans self.points dc.EndDrawing() #---------------------------------------------------------------------- app= wx.PySimpleApp() # app va gérer la procédure de fenêtre frame=wx.Frame(None,wx.ID_ANY,'Test') # création de la fenêtre de base panel= DrawPanel(frame) # création du conteneur d'objets frame.Show() # afficher frame app.MainLoop() # entrer dans la boucle d'évènements #----------------------------------------------------------------------
Bonjour,
Merci pour ton programme qui est fort intéressant, je le relis et te
dis ce que je ne comprend pas.
Mais avant j'ai une opération qui m'a choquée, c'est "x+=0,25" que je
ne comprend pas.
Peux-tu m'expliquer?
Bonjour,
Vous pensez bien que ce n'est pas terminé, j'aimerais créer la
sinusoide.
Pourriez vous m'expliquer la demarche SVP.
Tu peux le faire avec wx, même si les modules déjà cités sont
probablement beaucoup plus adaptés.
Exemple :
Je me relis, et je me dis que ce doit être bien ésotérique pour un
débutant. Voici donc le même, un peu simplifié (si peu), et avec des
commentaires.
# -*- coding: iso-8859-1 -*-
import math,wx # wx doit être installé, voir www.wxpython.org
#----------------------------------------------------------------------
class DrawPanel(wx.Panel): # wx.Panel est simplement un conteneur d'obje ts
# __init__ est le constructeur
def __init__(self, parent):
wx.Panel.__init__(self, parent) # appel du constructeur de
wx.Panel
self.SetBackgroundColour(wx.WHITE)
self.Bind(wx.EVT_PAINT, self.OnPaint) # gérer évènement
wx.EVT_PAINT dans OnPaint
#--construction coordonnées des points de la sinusoïde
self.points = []
x= float(0) # x est l'abscisse
for n in range(10000):
x+= 0.25
k= float(n)/100
y= (math.sin(k)*100)+100 # y est l'ordonnée
self.points.append((int(x),int(y)))
# OnPaint est appelée à chaque affichage
def OnPaint(self, evt):
dc = wx.PaintDC(self) # wx.PaintDC est un contexte de disposi tif
dc.BeginDrawing()
dc.Clear() # effacement de la zone d'affichage
dc.SetPen(wx.Pen("BLACK")) # on dit qu'on va écrire en noir
dc.DrawPointList(self.points) # on écrit les points dont les
coordonnées sont dans self.points
dc.EndDrawing()
#----------------------------------------------------------------------
app= wx.PySimpleApp() # app va gérer la procédure de fenêtre
frame=wx.Frame(None,wx.ID_ANY,'Test') # création de la fenêtre de base
panel= DrawPanel(frame) # création du conteneur d'objets
frame.Show() # afficher frame
app.MainLoop() # entrer dans la boucle d'évènements
#----------------------------------------------------------------------
Merci pour ton programme qui est fort intéressant, je le relis et te dis ce que je ne comprend pas.
Mais avant j'ai une opération qui m'a choquée, c'est "x+=0,25" que je ne comprend pas.
Peux-tu m'expliquer?
Bonjour,
Vous pensez bien que ce n'est pas terminé, j'aimerais créer la sinusoide.
Pourriez vous m'expliquer la demarche SVP. Tu peux le faire avec wx, même si les modules déjà cités sont
probablement beaucoup plus adaptés.
Exemple :
Je me relis, et je me dis que ce doit être bien ésotérique pour un débutant. Voici donc le même, un peu simplifié (si peu), et avec des commentaires.
# -*- coding: iso-8859-1 -*- import math,wx # wx doit être installé, voir www.wxpython.org #---------------------------------------------------------------------- class DrawPanel(wx.Panel): # wx.Panel est simplement un conteneur d'obje ts # __init__ est le constructeur def __init__(self, parent): wx.Panel.__init__(self, parent) # appel du constructeur de wx.Panel self.SetBackgroundColour(wx.WHITE) self.Bind(wx.EVT_PAINT, self.OnPaint) # gérer évènement wx.EVT_PAINT dans OnPaint #--construction coordonnées des points de la sinusoïde self.points = [] x= float(0) # x est l'abscisse for n in range(10000): x+= 0.25 k= float(n)/100 y= (math.sin(k)*100)+100 # y est l'ordonnée self.points.append((int(x),int(y))) # OnPaint est appelée à chaque affichage def OnPaint(self, evt): dc = wx.PaintDC(self) # wx.PaintDC est un contexte de disposi tif dc.BeginDrawing() dc.Clear() # effacement de la zone d'affichage dc.SetPen(wx.Pen("BLACK")) # on dit qu'on va écrire en noir dc.DrawPointList(self.points) # on écrit les points dont les coordonnées sont dans self.points dc.EndDrawing() #---------------------------------------------------------------------- app= wx.PySimpleApp() # app va gérer la procédure de fenêtre frame=wx.Frame(None,wx.ID_ANY,'Test') # création de la fenêtre de base panel= DrawPanel(frame) # création du conteneur d'objets frame.Show() # afficher frame app.MainLoop() # entrer dans la boucle d'évènements #----------------------------------------------------------------------
tool69
Bonjour,
Merci pour ton programme qui est fort intéressant, je le relis et te dis ce que je ne comprend pas.
Mais avant j'ai une opération qui m'a choquée, c'est "x+=0,25" que je ne comprend pas.
Peux-tu m'expliquer?
Salut,
"x+=0,25" signifie simplement "x=x + 0.25". Tu incrémentes donc x à chaque itération (dans la boucle "for n in range(10000)...").
Bonjour,
Merci pour ton programme qui est fort intéressant, je le relis et te
dis ce que je ne comprend pas.
Mais avant j'ai une opération qui m'a choquée, c'est "x+=0,25" que je
ne comprend pas.
Peux-tu m'expliquer?
Salut,
"x+=0,25" signifie simplement "x=x + 0.25".
Tu incrémentes donc x à chaque itération (dans la boucle "for n in
range(10000)...").
Merci pour ton programme qui est fort intéressant, je le relis et te dis ce que je ne comprend pas.
Mais avant j'ai une opération qui m'a choquée, c'est "x+=0,25" que je ne comprend pas.
Peux-tu m'expliquer?
Salut,
"x+=0,25" signifie simplement "x=x + 0.25". Tu incrémentes donc x à chaque itération (dans la boucle "for n in range(10000)...").
jean-michel bain-cornu
Bonsoir,
"x+=0,25" signifie simplement "x=x + 0.25". Tu incrémentes donc x à chaque itération (dans la boucle "for n in range(10000)..."). Oui, ça sert juste à faire évoluer l'abscisse. J'aurais pu écrire aussi
x+=.25 Note que j'ai mis x=float(0) de manière à souligner que x est un nombre en format flottant. J'aurais pu mettre x=0, ce qui aurait créé x en entier (type(x) : <type 'int'>) ; le simple fait de lui ajouter un nombre à virgule l'aurait par la suite 'transformé' en flottant (type(x) : <type 'float'>) ce qui correspondait à mes besoins qui étaient de faire évoluer l'abscisse de 1 pixel toutes les 4 itérations. Voilà, voilà. A+ jm
Bonsoir,
"x+=0,25" signifie simplement "x=x + 0.25".
Tu incrémentes donc x à chaque itération (dans la boucle "for n in
range(10000)...").
Oui, ça sert juste à faire évoluer l'abscisse. J'aurais pu écrire aussi
x+=.25
Note que j'ai mis x=float(0) de manière à souligner que x est un nombre
en format flottant. J'aurais pu mettre x=0, ce qui aurait créé x en
entier (type(x) : <type 'int'>) ; le simple fait de lui ajouter un
nombre à virgule l'aurait par la suite 'transformé' en flottant (type(x)
: <type 'float'>) ce qui correspondait à mes besoins qui étaient de
faire évoluer l'abscisse de 1 pixel toutes les 4 itérations.
Voilà, voilà.
A+
jm
"x+=0,25" signifie simplement "x=x + 0.25". Tu incrémentes donc x à chaque itération (dans la boucle "for n in range(10000)..."). Oui, ça sert juste à faire évoluer l'abscisse. J'aurais pu écrire aussi
x+=.25 Note que j'ai mis x=float(0) de manière à souligner que x est un nombre en format flottant. J'aurais pu mettre x=0, ce qui aurait créé x en entier (type(x) : <type 'int'>) ; le simple fait de lui ajouter un nombre à virgule l'aurait par la suite 'transformé' en flottant (type(x) : <type 'float'>) ce qui correspondait à mes besoins qui étaient de faire évoluer l'abscisse de 1 pixel toutes les 4 itérations. Voilà, voilà. A+ jm