Affichage fonction 2D
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Affichage fonction 2D



  1. #1
    lesurveilleur

    Affichage fonction 2D


    ------

    Je voudrais afficher un graphe d'une fonction en fonction d'un nombre de point définit ou bien d'un pas entre chaque point sur un intervalle donné : https://pastebin.com/mvNz1DTj

    Nom : b.png
Affichages : 169
Taille : 21,8 Ko

    Quel est mon erreur ?

    -----

  2. #2
    polo974

    Re : Affichage fonction 2D

    passer en mode édition avancée et coller le code dans des balises code (bouton dièse):
    Code:
    import numpy as np
    import matplotlib.pyplot as plt
     
    xmin=-1 
    xmax=-1
     
    ymin=-3
    ymax=3
     
     
    pasx=0.1
    pasy=0.3
     
    Nx=int((xmax-xmin))*pasx
    Ny=int((ymax-ymin))*pasy
     
    #OU : Nx=
    #     Ny=
     
     
     
    x = np.linspace(-1, 1, Nx)
    y = np.linspace(-3, 3, Ny)
    X, Y = np.meshgrid(x, y)
     
    Z = np.sin(Y) * np.exp(-X**2) # calcul du tableau des valeurs de Z
     
    fig, ax = plt.subplots()
    ax.pcolormesh(X, Y, Z)
     
    plt.show()
    une erreur de frappe:
    xmax = 1 # et non -1


    Nx=int((xmax - xmin) / pasx + 1.5) # le int sur tout et on divise par le pas pour avoir le nb d'intervalles, et on ajoute 0.5 pour arrondir et 1 pour les poteaux.

    # idem pour Ny.
    Jusqu'ici tout va bien...

  3. #3
    umfred

    Re : Affichage fonction 2D

    on peut utiliser x=np.arange(xmin,xmax,pasx) (ou x=np.arange(xmin,xmax+pasx,pas x) pour inclure xmax)

  4. #4
    lesurveilleur

    Re : Affichage fonction 2D

    Code:
    import numpy as np
    import matplotlib.pyplot as plt
     
    xmin=-1 
    xmax=1
     
    ymin=-3
    ymax=3
     
     
    pasx=0.1
    pasy=0.3
     
    Nx=int((xmax-xmin))*(pasx+1.5)
    Ny=int((ymax-ymin))*(pasy+1.5)
     
    #OU : Nx=
    #     Ny=
     
     
     
    x = np.linspace(-1, 1, Nx)
    y = np.linspace(-3, 3, Ny)
    X, Y = np.meshgrid(x, y)
     
    Z = np.sin(Y) * np.exp(-X**2) # calcul du tableau des valeurs de Z
     
    fig, ax = plt.subplots()
    ax.pcolormesh(X, Y, Z)
     
    plt.show()

    erreur :

    ce
    num = operator.index(num)
    TypeError: 'float' object cannot be interpreted as an integer

  5. A voir en vidéo sur Futura
  6. #5
    Paraboloide_Hyperbolique

    Re : Affichage fonction 2D

    Bonjour,

    Votre calcul pour le nombre d'intervalles Nx et Ny est bizarre. (le "+1.5" est incorrect).

  7. #6
    umfred

    Re : Affichage fonction 2D

    il a mal interprété la réponse de polo974
    Code:
    Nx=int((xmax - xmin) / pasx + 1.5)
    le 1.5 est à ajouter au résultat (xmax-xmin)/pasx

  8. #7
    lesurveilleur

    Re : Affichage fonction 2D

    Re :

    Code:
    import numpy as np
    import matplotlib.pyplot as plt
     
    xmin=-1 
    xmax=1
     
    ymin=-3
    ymax=3
     
     
    pasx=0.1
    pasy=0.3
     
    Nx=int(1.5+(xmax-xmin))*(pasx)
    Ny=int(1.5+(ymax-ymin))*(pasy)+1.5
     
    #OU : Nx=
    #     Ny=
     
     
     
    x = np.linspace(-1, 1, Nx)
    y = np.linspace(-3, 3, Ny)
    X, Y = np.meshgrid(x, y)
     
    Z = np.sin(Y) * np.exp(-X**2) # calcul du tableau des valeurs de Z
     
    fig, ax = plt.subplots()
    ax.pcolormesh(X, Y, Z)
     
    plt.show()
    Voici se que me donne l'IDE :

    TypeError: 'float' object cannot be interpreted as an integer

  9. #8
    lesurveilleur

    Re : Affichage fonction 2D

    Code:
    import numpy as np
    import matplotlib.pyplot as plt
     
    xmin=-1 
    xmax=1
     
    ymin=-3
    ymax=3
     
     
    pasx=0.1
    pasy=0.3
     
    Nx=int(1.5+(xmax-xmin))*(pasx)
    Ny=int(1.5+(ymax-ymin))*(pasy) #Erreur de frappe
     
    #OU : Nx=
    #     Ny=
     
     
     
    x = np.linspace(-1, 1, Nx)
    y = np.linspace(-3, 3, Ny)
    X, Y = np.meshgrid(x, y)
     
    Z = np.sin(Y) * np.exp(-X**2) # calcul du tableau des valeurs de Z
     
    fig, ax = plt.subplots()
    ax.pcolormesh(X, Y, Z)
     
    plt.show()
    Dernière modification par JPL ; 20/10/2022 à 14h24. Motif: Ajout de la balise Code

  10. #9
    umfred

    Re : Affichage fonction 2D

    Tu ne lis pas nos messages comme il faut .....

  11. #10
    polo974

    Re : Affichage fonction 2D

    Citation Envoyé par umfred Voir le message
    Tu ne lis pas nos messages comme il faut .....
    En effet, parce que juste avec les modifs que j'ai indiquées, j'avais un truc qui s'affichait...
    Jusqu'ici tout va bien...

  12. #11
    Ernum

    Re : Affichage fonction 2D

    Salut,

    en suivant le conseil d'umfred (np.arrange), j'obtiens moi aussi la figure. Mais il y a un truc que je ne pige pas ici, c'est la présence de ce "1.5" (je ne l'ai pas utilisé), qu'est-ce qui m'échappe?

  13. #12
    umfred

    Re : Affichage fonction 2D

    c'est pour que la valeur limite soit aussi prise en compte (d'après polo74); Je pense qu'il suffirait de faire (xmax+pasx-xmin)/pasx en fait (comme je l'utilise en #3)

  14. #13
    Ernum

    Re : Affichage fonction 2D

    Ok, merci.

  15. #14
    polo974

    Re : Affichage fonction 2D

    Citation Envoyé par umfred Voir le message
    c'est pour que la valeur limite soit aussi prise en compte (d'après polo74); Je pense qu'il suffirait de faire (xmax+pasx-xmin)/pasx en fait (comme je l'utilise en #3)
    Oui, mais non, car il faut faire un arrondi avant de faire le int

    exemple:
    >>> int(100*4.1)
    409
    pas bon...

    >>> int(100*4.1 + .5)
    410
    c'est mieux...

    donc plutôt que faire 2 additions, je les agrèges dans le +1.5 (mais attention, à condition d'avoir des nombres positifs, ce qui est le cas ici...)

    à propos de np.arange, justement, attention... :

    >>> len(np.arange(0, 420 + 4.2, 4.2))
    101
    ok, on a 100 intervalles, donc 101 poteaux
    mais
    >>> len(np.arange(0, 410 + 4.1, 4.1))
    102
    oups, 102 poteaux...

    le float ne sait pas représenter les décimales, donc, c'est presque toujours soit un peu plus, soit un peu moins.
    Jusqu'ici tout va bien...

Discussions similaires

  1. Programmation R, fonction grid, affichage d'une grille sudoku
    Par invite669e9b98 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 27/02/2022, 10h14
  2. Google Sheets / Script - Modifier l'affichage de ma colonne A en fonction de terme précis ?
    Par invite5982e39c dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 13/09/2020, 06h38
  3. corriger la fonction d'affichage
    Par invite0ae9a443 dans le forum Électronique
    Réponses: 2
    Dernier message: 19/09/2015, 13h31
  4. [Blanc] Affichage Frigo américain ne fonction pas
    Par invite3d658bef dans le forum Dépannage
    Réponses: 3
    Dernier message: 03/12/2008, 23h15