Forum EduPython

Echanges autour d'EduPython.

Vous n'êtes pas identifié(e).

#1 2020-03-27 08:07:29

oli02
Membre
Inscription : 2018-12-11
Messages : 8

PROBLEME AFFICHAGE GRAPHIQUE

Bonjour,

J'ai créé deux programmes : PROG1 qui calcule une équation de droite définie par deux points et qui affiche le graphique ; PROG2 qui calcule une équation de droite définie par un point et un vecteur directeur et qui DOIT afficher le graphique.
Problème : PROG2 n'affiche pas le graphique, alors que PROG1 oui !
Je ne vois pas où est le problème.
Je vous remercie pour votre aide.

Oli


Voici le code :

PROG1 :

# importation des modules
from matplotlib import *
import matplotlib.pyplot as plt
# Entrée des coordonnées des points
print("Entrer les coordonnées du 1er point :")
x1=float(input("abscisse du premier point x1 :"))
y1=float(input("ordonnée du premier point y1 :"))
print("Premier point : A(",x1," ; ",y1,")")
print("")
print("Entrer les coordonnées du 2ème point :")
x2=float(input("abscisse du deuxième point x2 :"))
y2=float(input("ordonnée du deuxième point y2 :"))
print("Deuxième point : B(",x2," ; ",y2,")")
print("")
# Détermination des équations réduites et cartésiennes (si elles existent) de la droite
if x1==x2:
    if y1==y2:
        print("droite inexistante car points égaux")
    else:
        print("La droite passant par les points A(",x1," ; ",y1,") et B(",x2," ; ",y2,") est une")
        print("Droite verticale d'équation :")
        print("x =",x1)
        # dessin de la droite verticale
        plt.scatter(x1,0,c='blue',s=200,marker='o',edgecolors = 'none')
        plt.suptitle('Droite verticale (AB)', fontsize = 18)
        plt.xlim(-10,10)
        plt.ylim(-10,10)
        plt.xticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10])
        plt.yticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10])
        plt.plot([-10, 10], [0, 0], 'k-', lw=3) # trait plein noir épaisseur 3 axe des abscisse
        plt.plot([0, 0], [-10, 10], 'k-', lw=3) # trait plein noir épaisseur 3 axe des ordonnées
        plt.grid()
        plt.xlabel('axe des x')
        plt.ylabel('axe des y')
        plt.subplot().set_aspect('equal')
        plt.plot([x1,x1], [-10, 10], 'r-', lw=2) # trait plein rouge épaisseur 2
        plt.show()
else:
    m=(y2-y1)/(x2-x1)
    p=y1-m*x1
    print("")
    print("La droite passant par les points A(",x1," ; ",y1,") et B(",x2," ; ",y2,") a pour")
    print("équation réduite :")
    if p>=0:
        print("y = ", m,"x + ",p)
    else:
        print("y = ", m,"x - ",abs(p))
    def dessin():
        # calcul de ymin ymax pour tracer la droite
        ymin=m*(-10)+p
        ymax=m*10+p
        # dessin des deux points
        plt.scatter(x1,y1,c='blue',s=200,marker='o',edgecolors = 'none')
        plt.scatter(x2,y2,c='blue',s=200,marker='o',edgecolors = 'none')
        # définition des axes
        plt.xlim(-10,10)
        plt.ylim(-10,10)
        # tracé des axes du repère
        plt.plot([-10, 10], [0, 0], 'k-', lw=3) # trait plein noir épaisseur 3 axe des abscisse
        plt.plot([0, 0], [-10, 10], 'k-', lw=3) # trait plein noir épaisseur 3 axe des ordonnées
        # tracé du quadrillage
        plt.xticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10])
        plt.yticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10])
        plt.grid()
        # aspect égal du quadrillage
        plt.subplot().set_aspect('equal')
        # étiquettes des axes et titre du graphique
        plt.xlabel('axe des x')
        plt.ylabel('axe des y')
        plt.suptitle('Droite (AB)', fontsize = 18)
        # tracé de la droite
        plt.plot([-10, 10], [ymin, ymax], 'r-', lw=2) # trait plein rouge épaisseur 2
        plt.show()
    a=y2-y1
    b=x1-x2
    c=x2*y1-y2*x1
    if b<0 and c<0:
        print("")
        print("et pour")
        print("équation cartésienne :")
        print(a,"x -",abs(b),"y -",abs(c)," = 0")
        dessin()
    elif b<0 and c>=0:
        print("")
        print("et pour")
        print("équation cartésienne :")
        print(a,"x -",abs(b),"y +",c," = 0")
        dessin()
    elif b>=0 and c<0:
        print("")
        print("et pour")
        print("équation cartésienne :")
        print(a,"x +",b,"y -",abs(c)," = 0")
        dessin()
    else:
        print("")
        print("et pour")
        print("équation cartésienne :")
        print(a,"x +",b,"y +",c," = 0")
        dessin()

PROG2 :

# importation des modules
from matplotlib import *
import matplotlib.pyplot as plt
import numpy as np
# définition de la fonction dessin
def dessin():
    # calcul de ymin ymax pour tracer la droite
    ymin=m*(-10)+p
    ymax=m*10+p
    # dessin des deux points
    plt.scatter(x1,y1,c='blue',s=50,marker='o',edgecolors = 'none')
    # ancienne écriture :     plt.scatter(x1+x2,y1+y2,c='blue',s=200,marker='o',edgecolors = 'none')
    # définition des axes
    plt.xlim(-10,10)
    plt.ylim(-10,10)
    # tracé des axes du repère
    plt.plot([-10, 10], [0, 0], 'k-', lw=3) # trait plein noir épaisseur 3 axe des abscisse
    plt.plot([0, 0], [-10, 10], 'k-', lw=3) # trait plein noir épaisseur 3 axe des ordonnées
    # tracé du quadrillage
    plt.xticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10])
    plt.yticks([-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10])
    plt.grid()
    # étiquettes des axes et titre du graphique
    plt.xlabel('axe des x')
    plt.ylabel('axe des y')
    plt.suptitle('Droite (AB)', fontsize = 18)
    # tracé de la droite
    if x2>=0:
        plt.plot([-10, x1], [ymin, y1], 'r-', lw=2) # trait plein rouge épaisseur 2
        plt.plot([x2, 10], [y2, ymax], 'r-', lw=2) # trait plein rouge épaisseur 2
    else:
        plt.plot([-10, x2], [ymin, y2], 'r-', lw=2) # trait plein rouge épaisseur 2
        plt.plot([x1, 10], [y1, ymax], 'r-', lw=2) # trait plein rouge épaisseur 2
    #tracé vecteur :
    ax = plt.subplot()
    q = ax.quiver(x1, y1, x2, y2,units='xy',scale=1,color='blue')
    ax.set_aspect('equal')
    plt.show()
# Entrée des coordonnées des points
print("Entrer les coordonnées du point :")
x1=float(input("abscisse du point x :"))
y1=float(input("ordonnée du point y :"))
print("Point : A(",x1," ; ",y1,")")
print("")
print("Entrer les coordonnées du vecteur directeur u :")
x2=float(input("abscisse du vecteur u :"))
y2=float(input("ordonnée du vecteur u :"))
print("Vecteur directeur : u(",x2," ; ",y2,")")
print("")
if x2==0 and y2==0:
    print("droite inexistante car vecteur nul")
else:
    if x2==0:
        print("droite verticale d'équation : x=",x1)

    else:
        m=y2/x2
        p=y1-m*x1
        print("La droite passant par le point A(",x1," ; ",y1,") et de vecteur directeur u(",x2," ; ",y2,") a pour")
        print("équation réduite :")
        if p>=0:
            print("y = ", m,"x + ",p)
        else:
            print("y = ", m,"x - ",abs(p))
        a=y2
        b=-x2
        c=x2*y1-y2*x1
        if b<0 and c<0:
            print("")
            print("et pour")
            print("équation cartésienne :")
            print(a,"x -",abs(b),"y -",abs(c)," = 0")
            dessin()
        elif b<0 and c>=0:
            print("")
            print("et pour")
            print("équation cartésienne :")
            print(a,"x -",abs(b),"y +",c," = 0")
        elif b>=0 and c<0:
            print("")
            print("et pour")
            print("équation cartésienne :")
            print(a,"x +",b,"y -",abs(c)," = 0")
            dessin()
        else:
            print("")
            print("et pour")
            print("équation cartésienne :")
            print(a,"x +",b,"y +",c," = 0")
            dessin()

Hors ligne

#2 2020-03-27 11:03:27

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 276

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonjour,

     Il manque un dessin() dans le 2ème if (d'ailleurs, on aurait pu ne mettre qu'une fois dessin() à l'extérieur des tests.

Bonne journée,
Vincent

Hors ligne

#3 2020-03-27 13:14:10

oli02
Membre
Inscription : 2018-12-11
Messages : 8

Re : PROBLEME AFFICHAGE GRAPHIQUE

Merci beaucoup ça fonctionne le graphique s'affiche.
Ce qui m'a permis de voir qu'il y avait des petits bugs que je suis en train de corriger.
Bien cordialement
Oli

Hors ligne

#4 2020-03-27 13:45:00

oli02
Membre
Inscription : 2018-12-11
Messages : 8

Re : PROBLEME AFFICHAGE GRAPHIQUE

Par contre j'ai un message d'erreur :

Qu'est-ce que ça signifie ???

C:\EduPython\App\lib\site-packages\matplotlib\cbook\deprecation.py:107: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
  warnings.warn(message, mplDeprecation, stacklevel=1)

Hors ligne

#5 2020-03-27 14:00:18

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 276

Re : PROBLEME AFFICHAGE GRAPHIQUE

ça veut dire qu'il est pas content, mais qu'il va quand même le faire smile
C'est une "alerte" et non un message d'erreur, il faudrait voir le code

VM

Hors ligne

#6 2020-03-27 14:22:31

oli02
Membre
Inscription : 2018-12-11
Messages : 8

Re : PROBLEME AFFICHAGE GRAPHIQUE

d'accord . Merci beaucoup. Pour l'instant je vais laisser cette alerte tranquille du moment que ça fonctionne. Parce que je ne pense pas savoir où trouver dans le code ce qui donne cette alerte.

Hors ligne

#7 2021-01-13 16:03:34

FUFTIRSIS
Membre
Inscription : 2021-01-13
Messages : 16

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonjour à tous,
Je débute ! ! (jusqu'ici j'utilisais Maple , mais je veux voir ce que donne Python avec sa programmation-objet - j'ai fait du TurboPascal sous Dos pdt des années))
Je crée des morceaux de programmes avec tracé de courbes. Les courbes ne s'affichent nulle part
Même avec les programmes recopiés dans les pdf tutoriels
Qu'ai-je omis de charger ? Où se trouve la "fençetre graphique" (je ne connais que la zone-console)
Merci

Hors ligne

#8 2021-01-13 17:01:54

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 276

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonsoir,

     où tapez vous le code ? Dans la zone de console ou la zone de script ?

V. Maille

Hors ligne

#9 2021-01-13 18:05:14

FUFTIRSIS
Membre
Inscription : 2021-01-13
Messages : 16

Re : PROBLEME AFFICHAGE GRAPHIQUE

bonsoir,
je tape le code dans la zone de script
J'ai fait plusieurs essais, le dernier étant une copie toute simple de lignes de code prises dans edupython.pdf :

def dessin00(vmax) :
    for i in range( 10000 ):
        x=uniform(-vmax,+vmax)
        y=uniform(-vmax,+vmax)
    if x*(6-x)<y*(8+y):
        repere .plot(x,y,'ro')
    else :
        repere .plot(x,y,'go')
    repere .show()

les fonctions basiques sont prises dans lycee.py bien sûr qui est également chargé

NOTER : depuis ma question, j'ai vu que j'avais une alerte que je comprends pas et que je ne peux donc résoudre
"This application failed to start because it could not find or load the Qt platform plugin "windows" in "".  Reinstalling the application may fix this problem."

Ouh là !
Merci

Hors ligne

#10 2021-01-13 20:01:55

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 276

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonsoir, je pense que vous avez la version 2.9 d'Edupython, et non la dernière.
VM

Hors ligne

#11 2021-01-14 11:26:28

FUFTIRSIS
Membre
Inscription : 2021-01-13
Messages : 16

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonjour,

Je vous remercie pour vos réponses très rapides.
J'ai vérifié l'état des versions :
EduPython 3.0
PyScripter : version 3.6.3.0 pour  x64 bien sûr ( et W10)
Python 3.7.6

J'ai pris un autre ordi, et ça plante de la même façon avec le même message : pb de Qt

Sur le forum Windows concernant Qt, c'est la panique : c'est trop compliqué pour moi

Bonne journée.
F

Hors ligne

#12 2021-01-14 21:09:08

FUFTIRSIS
Membre
Inscription : 2021-01-13
Messages : 16

Re : PROBLEME AFFICHAGE GRAPHIQUE

J'AI TROUVE !!!!!!!!
J'ai fouille dans les repertoires EduPython et j'ai vu un fichier qt.conf
En le lisant, je constate qu'il porte des chemins qui ne correspondent pas à mon installation
En effet j'avais installe EduPython dans Programmes x86
Donc :
J'ai desinstalle tout
J'ai reinstallé dans le répertoire propose par défaut (C/EduPython) juste sous la racine
Et zou ...... Ça marche , la fenetre graphique apparaît correctement (au moins dans mes deux premiers essais)
A MÉMORISER !!!!
IL FAUT SIGNALER CELA DANS LE "MANUEL" d'INSTALLATION
OU FAIRE que le fichier qt.conf s'aligne avec le choix du chemin d'install choisi par celui qui installe sur son PC
Personnellement je n'aime pas installer sous la racine
Nota : du coup, cela a aussi résolu une alerte dont je ne faisais pas cas, à savoir, lors du lancement le logiciel ne pouvait pas écrire dans son fichier log . Maintenant c'est ok

C'est Grâce à vos questions que je me suis mis à fouiller
Merci
Bonne soirée
F.

Hors ligne

#13 2021-01-16 07:08:58

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 276

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonjour,

     Merci de l'info. Je faisais cette mise à jour dans la précédente version d'EduPython, mais a priori, je pensais que cela fonctionnait sans Qt avec Python 3.7 lors de mes tests, je vais réactiver la mise à jour automatique de ce fichier au lancement d'EduPython danss la prochaine version.

Merci du signalement.
Vincent

Hors ligne

#14 2021-01-16 08:39:35

FUFTIRSIS
Membre
Inscription : 2021-01-13
Messages : 16

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonjour,

Merci pour votre travail et vos actions, de ma part et sûrement aussi de la part de la Communaiuté EduPython.

Si vous faites les corrections d'ici qq semaines, prévenez moi, je veux bien être un autre "beta-testeur"

N'oubliez pas de traiter aussi le pb des chemins du fichier log

Cordialement
F.

Hors ligne

#15 2021-01-18 18:10:55

magicvinni
Administrateur
Inscription : 2017-12-22
Messages : 276

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonsoir,

     Je viens de regarder plus en détail, mais en fait le fichier qt.conf est déjà mis à jour automatiquement au lancement. Où aviez-vous installé EduPython quand ça ne marchait pas ? Je pense qu'il y avait un problème de droit d'écriture sur le fichier.

Bonne soirée,
Vincent M

Hors ligne

#16 2021-01-18 18:18:27

FUFTIRSIS
Membre
Inscription : 2021-01-13
Messages : 16

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonsoir,
Quelle réactivité !!! Merci

j'avais installé , selon mes deux PC, soit dans C: Programmes, soit dans C: Programmes (x86)

Hors ligne

#17 2021-04-24 14:00:07

FOXY
Membre
Inscription : 2021-04-24
Messages : 1

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonjour, je commence la programation, d'ailleur je vous parle depuis un rasberry py
Et j'a un problème car quand je lance un programe de dessin (pour dessiner de bulle)
les bulle ne s'affiche pas voici le code

from random import randint
id_bulle = list()
r_bulle = list()
vitesse_bulle = list()
R_BULLE_MIN = 10
R_BULLE_MAX = 30
VITESSE_BULLE_MAX = 10
ECART = 100
def créer_bulle():
    x = LARGEUR + ECART
    y = randint(0, HAUTEUR)
    r = randint(R_BULLE_MIN, R_BULLE_MAX)
    id1 = c.create_oval (x - r, y - r, x + r, y + r, outline='white')
    id_bulle.append(id1)
    r_bulle.append(r)
    vitesse_bulle.append(randint(1, VITESSE_BULLE_MAX))

voila merci de me repondre au plus vite et merci d'avance

Hors ligne

#18 2021-04-24 16:52:51

FUFTIRSIS
Membre
Inscription : 2021-01-13
Messages : 16

Re : PROBLEME AFFICHAGE GRAPHIQUE

Bonsoir

il n'y a que ça dans le code ?
je l'ai regardé (et lancé !) dans Edupython
A minima, il faut une dernière ligne qui éxécute la routine créer_bulle (elle est créée mais pas exécutée dans le code)
mettre en fin de code qq chose comme
    créer_bulle()
s'il n'y a pas d'arguments d'appel

et demander l'ouverture de la fenêtre graphique par : repere.show (si exécution avec module lycee d'edupython)

ensuite, les variables LARGEUR et HAUTEUR ne sont pas initialisées
ni la variable c

enfin, il faut en en-tête charger d'autres modules, notamment
    lycee (?)
    pylab
      et surtout, pour créer un graphique)
    matplotlib.pyplot

pour le reste, je laisse à d'autres le soin d'examiner le code car je ne connais pas les commandes
    create_oval

bonne soirée
FT

Hors ligne

#19 2021-11-05 13:16:41

starrtiktokk
Membre
Inscription : 2021-11-05
Messages : 1

Re : PROBLEME AFFICHAGE GRAPHIQUE

Merci beaucoup ça fonctionne le graphique s'affiche. [size=1]vidmate app mobdro app
[/size]

Dernière modification par starrtiktokk (2021-11-08 12:42:55)

Hors ligne

Pied de page des forums