Mesure et programmation

Bonjour

Comment ploter [dessiner, tracer, ? AD] une mesure de probabilité sur $\R^{2}$ ? (En python si possible).

Réponses

  • On pourrait commencer par les mesures discrètes.
  • On pourrait essayer une histogramme en 3D : https://toeholds.wordpress.com/2010/03/26/3d-bar-histogram-in-python/

    Mais j'avoue ne pas comprendre comment fonctionne le lien.
    Personnellement j'ai discrétiser [0:1] donc en X et Y je mettrais un (k/N, k'/N) et en Z je mettrai mesure(k/N x k'/N).
  • Bonjour.

    Qu'appelles-tu "ploter" ? Que signifie, par exemple, "ploter" la mesure de Dirac en (0,0) pour toi ?

    Cordialement.

    NB : Une question trop générale ne peut pas avoir de réponse satisfaisante.
  • En complément à ce message : Tu as des choses en tête, les expliquer est un minimum.
  • L'idée est simple.
    import numpy as np
    import math
    from mpl_toolkits import mplot3d
    import matplotlib.pyplot as plt
    
    #Paramétrisation
    N = 10**3                    #pas de discrétisation de l'intervalle [0,1]. N[ i] correspond à la coordonnée i.
    epsilon = 10**-1
    arret = 10**-3
    Niter = 10**3
    
    # Fonction de coût
    T = np.linspace(0,1,N, False) #points de discrétisation de l'intervalle [0,1]
    S = np.linspace(0,1,N,False) #points de discrétisation de l'intervalle [0,10]
    X,Y = np.meshgrid(T,S)
    C = (X-Y)**2                    #Matrice contenant les c[ i,j]=(xi-yj)²
    
    # Loi uniforme
    uni = np.ones(N)
    
    n = 1000
    # La fonction Sinkhorn (que je ne donne pas pour ne pas alourdir le texte) renvoit une matrice NxN
    Gamma_star = Sinkhorn(C, uni, uni, 1/n)
    
    La matrice Gamma_star est une approximation d'une mesure sur $[0;1] \times [0;1]$ j'aimerais bien la représenter.

    Mon idée faire un graphe 3D en X la discrétisation de [0,1] typiquement X = np.linspace(0,1, 1/N), Y pareil et Z = Gamma_star.
    On pourrait essayer de faire un histogramme 3D aussi en plus.
    Du coup je fais des recherches pour apprendre à coder ça, si vous savez faire ce serait un plaisir de vous lire.
  • Ploter la [large]D[/large]irac en 0 est un graphe 3D avec un point disons bleue en (0,0).
    Et un histogramme 3D avec un barre de longueur 1 en (0,0) disons bleue aussi !

    On pourrait mettre des dégradés de couleurs selon le niveau mais déjà je peux essayer de le faire normalement ^^.

    [Paul Dirac (1902-1984) prend toujours une majuscule. AD]
  • Pour être encore plus clair voici deux photos des résultats qu'on pourrait avoir :94310
    94306
  • Je suis peut-être vieux mais pour moi, ploter signifie autre chose de plus… physique.
    Algebraic symbols are used when you do not know what you are talking about.
            -- Schnoebelen, Philippe
  • J'ai réussi à subplot.
        fig = plt.figure()
    
        for i in range(4):
            ax = fig.add_subplot(2, 2, i+1, projection='3d')
            Gamma_star, tqui = Sinkhorn(C, mu, nu, 1/10**i)
            ax.scatter(X, Y, Gamma_star)
            plt.title("Gamma bar 1/{} entre une mu et nu".format(1/10**i))
    
        plt.show()
    

    Maintenant je me concentre sur l'histogramme, toute aide est bienvenue.94344
  • Ah oui j'aimerais bien mettre des couleurs aussi sur mes plots comme par exemple dans ici :94346
Connectez-vous ou Inscrivez-vous pour répondre.