Forum général.cherche-logiciel Graphique à l’échelle à partir de données

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
7
29
oct.
2024

Hello,
j'ai un tableau avec 2 colonnes, la première étant une distance en mm, la seconde une hauteur mesurée (également en mm)

J'aimerais tirer un graphique (avec des lignes ou des points), avec la première colonne en abscisse, et la seconde en ordonnée.
Jusque là facile.

Mais, là où ça se complique, c'est que j'aimerais pouvoir l'imprimer à l'échelle 1:1 (ou toute autre échelle, du moment que c'est respecté).
J'ai essayé avec Gnuplot, libreoffice, mais je n'ai pas réussi (trouvé).
Quelqu'un aurait une idée ? Un programme à suggérer ? (si au passage ça peut me générer un svg/dxf/….)
Merci d'avance !

  • # qcad ?

    Posté par  (site web personnel, Mastodon) . Évalué à 1 (+0/-0).

    qcad peut-être ? Je serais surpris qu'il n'y ait pas un module d'import de coordonnées depuis un tableau ou un csv.

  • # Gnuplot

    Posté par  (site web personnel) . Évalué à 3 (+1/-0).

    Avec gnuplot deux commandes permettent d'atteindre ce résultat :

    set size ratio -1 # impose une même échelle sur les deux axes
    set size square   # impose un graphique de forme carrée

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Gnuplot

      Posté par  (site web personnel) . Évalué à 4 (+3/-0).

      Je pense que je me suis mal exprimé.
      Je ne cherche pas à avoir un graphique de forme carrée (en fait mon résultat sera plutôt rectangulaire)

      J'ai une grille de 1mmx1mm, au format A3. Mon graphique est tracé par dessus (et tout rentre).
      Par contre, à l'impression, mes carrés ne font pas 1mm de côté, à cause des marges entre autre).
      Alors je peux jouer pour essayer de trouver une approximation qui fonctionne, mais j'aimerais trouver quelque chose qui m'assure que ma grille fait bien 1x1mm à l'impression

      Ps : mon graph n'occupe pas tout l'espace disponible, il n'est pas gênant de rogner pour que ça rentre… tant que l’échelle est respectée…

      • [^] # Re: Gnuplot

        Posté par  (site web personnel) . Évalué à 2 (+0/-0).

        Au temps pour moi, il me semblait avoir compris que l'échelle relative des abscisses et ordonnées était ce qui importait.

        Si je comprends bien — ce qui est tout sauf certain — vous collez votre graphique produit avec un logiciel quelconque sur une grille format A3 occupant l'ensemble de la feuille. Cette partie là fonctionne, et c'est à l'impression qu'apparaissent les déformations à cause des marges.

        Si c'est bien le cas, ne disposez-vous pas dans les options d'impression d'un réglage pour imprimer aux dimensions d'origines sans considérations des marges ?
        Sinon, un petit coup de Gimp, pour supprimer de larges marges, et print… ?

        « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

        • [^] # Re: Gnuplot

          Posté par  (site web personnel) . Évalué à 3 (+2/-0).

          Non, je génère tout avec gnuplot.

          ma grille est générée avec :

          set tics scale 0.01, 0.01
          set xtics 100
          set mxtics 5
          set ytics 10
          set mytics 5
          set linetype 101 lc "blue" lw 1
          set linetype 102 lc "blue" lw 0.5
          set grid x mx y my lt 101, lt 102

          j'ai essayé de fixer les echelles
          set yrange [0:270]
          set xrange [0:400]

          pour des dimensions de 297x420mm. mais c'est une approximation.
          mon graphique est avec plot 'Mesures.csv' using 1:2 with lines lc "red"
          ou mon fichier csv contiens les valeurs des colonnes X et Y, qui sont largement comprises dans le scope 400,270

          Ce dont j'ai besoin, c'est qu'1mm sur mon graphique corresponde à 1mm de mes données…

          • [^] # Re: Gnuplot

            Posté par  (site web personnel) . Évalué à 2 (+0/-0).

            D'après vos remarques, vous avez déjà plus ou moins réussi à l'exception de la gestion des marges. C'est bien ça ?

            Dans ce cas, ne suffit-il pas de les fixer précisément avec :

            set lmargin at screen 0.1
            set rmargin at screen 0.9
            set tmargin at screen 0.9
            set bmargin at screen 0.1

            En adaptant les valeurs à la dimension désirée ?

            « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

          • [^] # Re: Gnuplot

            Posté par  (site web personnel) . Évalué à 3 (+1/-0).

            PS : vérifications faites sur du A4, ça semble effectivement marcher assez précisément. Exemple :

            set terminal pdfcairo size 29.698484809834998cm,21cm
            set output "test.pdf"
            
            set lmargin at screen 0.11780011109106933
            set rmargin at screen 0.9259221467328379
            set tmargin at screen 0.9523809523809523 
            set bmargin at screen 0.09523809523809523 
            
            
            set tics scale 0.01, 0.01
            set xtics 100
            set mxtics 5
            set ytics 10
            set mytics 5
            set linetype 101 lc "blue" lw 1
            set linetype 102 lc "blue" lw 0.5
            set grid x mx y my lt 101, lt 102
            
            
            set yrange [0:170]
            set xrange [0:240]
            
            set samples 1000
            plot 50*cos(x) +90

            « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

      • [^] # Re: Gnuplot

        Posté par  . Évalué à 3 (+1/-0).

        J'ai une grille de 1mmx1mm, au format A3.

        C'est donc du papier millimétré au format A3 ( la grille est préimprimé sur le papier ?)

        Si c'est bien le cas, je suis un peu septique sur le fait d'imprimer un graphique par dessus : vous risquez de galérer pour que l'imprimante se positionne au même niveau que la grille : entre les marges, la position de la feuille, et la précision plus ou moins fiable du système d'impression, ça risque d'être compliqué à a voir un résultat satisfaisant.

        • [^] # Re: Gnuplot

          Posté par  . Évalué à 3 (+1/-0). Dernière modification le 29 octobre 2024 à 14:59.

          Au tmps pour moi : en relisant le fil de discussion, j'ai vu le code gnuplot : je ne suis pas un expert (je l'utilise occasionnellement) mais si j'ai bien compris, le quadrillage es généré à l'aide de ce bout de code :

          ma grille est générée avec :

          set tics scale 0.01, 0.01
          set xtics 100
          set mxtics 5
          set ytics 10
          set mytics 5
          set linetype 101 lc "blue" lw 1
          set linetype 102 lc "blue" lw 0.5
          set grid x mx y my lt 101, lt 102
  • # LibreOffice

    Posté par  . Évalué à 2 (+1/-0).

    Dans LibreOffice, il faut choisir un graphique XY et utiliser les même min et max pour les axes X et Y.

    Ensuite, il faut jouer sur la taille du graph, et ça devrait être bon.

  • # python + matplotlib

    Posté par  . Évalué à 3 (+2/-0).

    import numpy as np
    import matplotlib.pyplot as plt
    x = np.random.rand(20, 1)
    y = 2*np.random.rand(20, 1) # facteur 2 juste pour montrer que la sortie respecte le rapport d’aspect
    plt.scatter(x, y)
    plt.gca().set_aspect(1)
    plt.show()

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.