Partage
  • Partager sur Facebook
  • Partager sur Twitter

Matplotlib et Linewidth

    16 août 2019 à 21:21:53

    Bonjour,
    Je cherche à dessiner une ligne avec Matplotlib d'une certaine longueur et épaisseur. j'ai réussi à créer la ligne avec la longueur souhaitée (400mm) mais je bloque sur la définition de l'épaisseur (4mm). D'après la documentation linewidth est défini en pixel or, de base la figure possède une résolution de 100dpi et comme j'ai défini une figure de 400mm*400mm ma figure est de résolution 1574.8px*1574.8px. Donc si je suis cette logique en fixant le paramètre linewidth à 15.748px je devrais obtenir une épaisseur de 4mm. En réalité j'obtiens 5.38mm. Pour vérifier les dimensions j'enregistre ma figure au format svg pour utiliser le logiciel inkscape. Je ne comprends pas ce qui pose problème dans ma démarche d'autant que j'ai trouvé des cas similaires sur Internet résolus en suivant cette méthode.
    Merci par avance pour votre aide ! 
    import matplotlib.pyplot as plt
    fig1 = plt.figure(figsize=(400/25.4,400/25.4))#size in inches
    
    ax1= plt.gca()
    ax1.set_ylim(0,400)
    ax1.set_xlim(0,400)
    ax1.set_xticklabels([])
    ax1.set_yticklabels([])
    ax1.axis('off')
    fig1.tight_layout()
    
    x = [0,400]
    y = [200,200]
    
          
    ax1.plot(x,y,linewidth=4*1574.8/400)#with 100dpi the figure should be 1574.8px*1574.8px
    
    plt.subplots_adjust(left=0, right=1, top=1, bottom=0)
    plt.savefig('test.svg', bbox_inches='tight', pad_inches=0, dpi='figure')
    • Partager sur Facebook
    • Partager sur Twitter

    Matplotlib et Linewidth

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown