Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2018-03-22T16:22:38+01:00Les derniers messages parus sur le forum de Zeste de Savoir.[RESOLU] [gnuplot] gif animation : points statiques, message #1761482018-03-22T16:22:38+01:00Mihro/@Mihrohttps://zestedesavoir.com/forums/sujet/10441/resolu-gnuplot-gif-animation-points-statiques/?page=1#p176148<p>Bonjour, merci beaucoup pour votre réponse détaillée grâce à laquelle j’ai réussi à faire ce que je voulais.
Je poste la solution si quelqu’un a une demande similaire.</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>reset
set term gif animate delay 5
set output "output.gif"
stats 'filout.txt' name "A" nooutput
stats 'radar.txt' name "B" nooutput
set xrange [-50:1150]
set yrange [-50:300]
seuilFonction = 5000*cos(pi/4)/20
f(x) = a*x**2 + b*x + c
p=0
a = 0.1
b = 0.1
c = 0.1
fit f(x) 'radar.txt' via a, b, c
g(x,y) = y>=seuilFonction ? f(x) : 1/0
do for [i=0:int(A_blocks)-1] {
plot 'filout.txt' index (i), 'radar.txt' every ::0::(i*2*B_records/A_blocks), g(x,i)
}
set output
</pre></div>
</td></tr></table></div>
<p>Sujet résolu <img alt=":)" src="/static/smileys/smile.png"></p>[RESOLU] [gnuplot] gif animation : points statiques, message #1761292018-03-22T11:47:14+01:00Idrigol/@Idrigolhttps://zestedesavoir.com/forums/sujet/10441/resolu-gnuplot-gif-animation-points-statiques/?page=1#p176129<p>Bonjour et merci pour ton code.</p>
<p>Attention aux <code>plot</code> successifs dans ta boucle : le tracé de l’un va écraser le précédent. Si tu veux superposer plusieurs courbes il faut faire appel à <a href="http://www.gnuplotting.org/tag/multiplot/">multiplot</a> (on l’utilise plutôt pour mettre plusieurs graphes côte à côte), ou enchaîner les courbes à la suite d’une seule commande <code>plot</code>. Par exemple :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>plot f<span class="o">(</span>x<span class="o">)</span>, <span class="s1">'data.dat'</span>
</pre></div>
</td></tr></table></div>
<p>tracera la fonction f et les données contenues dans data.dat sur un même graphe.</p>
<p>Ensuite tu utilises <code>index</code> qui te permet de sélectionner un bloc de données en particulier via la variable <code>i</code> ou <code>p</code>. L’option <code>every</code> te permet en fait un contrôle plus fin, par exemple de spécifier où démarrer dans tes données, où t’arrêter et l’incrément si tu veux sauter des points. Pour ’radar.txt’, si on oublie la condition pour le moment, je ferais :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>plot <span class="s1">'radar.txt'</span> every :::0::i
</pre></div>
</td></tr></table></div>
<p>ce qui trace ’radar.txt’ du bloc 0 au bloc i.</p>
<p>Passons aux conditions. Tu peux faire des <code>if(){} else if() {}</code> avec les courbes souhaitées pour chaque condition. Personnellement j’aime bien les opérateurs ternaires, ça donne un code un peu plus compact. Le code suivant devrait te donner le comportement que tu attends :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>16
17
18
19
20
21
22
23
24
25
26
27</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="nv">seuilFonction</span> <span class="o">=</span> <span class="m">600</span>
<span class="nv">seuilRadar</span> <span class="o">=</span> <span class="m">30</span>
<span class="c1"># Une fonction g pour définir quand on a le droit de tracer f </span>
<span class="c1"># 1/0 signifie valeur non définie pour gnuplot</span>
g<span class="o">(</span>x,y<span class="o">)=</span> y><span class="o">=</span>seuilFonction ? f<span class="o">(</span>x<span class="o">)</span> : <span class="m">1</span>/0
<span class="k">do</span> <span class="k">for</span> <span class="o">[</span><span class="nv">i</span><span class="o">=</span><span class="m">0</span>:int<span class="o">(</span>A_blocks<span class="o">)</span>-1<span class="o">]</span> <span class="o">{</span>
plot <span class="s1">'filout.txt'</span> every :::i::i,<span class="se">\</span>
<span class="s1">'radar.txt'</span> using <span class="o">(</span><span class="nv">$1</span><span class="o">)</span>:<span class="o">(</span>i><span class="o">=</span>seuilRadar ? <span class="nv">$2</span> : <span class="m">1</span>/0<span class="o">)</span> every ::0::<span class="o">(</span>i><span class="o">=</span>seuilRadar ? ii-30 : <span class="m">0</span><span class="o">)</span>,<span class="se">\</span>
g<span class="o">(</span>x,i<span class="o">)</span>
<span class="o">}</span>
</pre></div>
</td></tr></table></div>
<p>On trace ’filout.txt’ point par point à chaque frame, puis on trace ’radar.txt’ une fois que i vaut <code>seuilRadar</code> (j’ai rajouté l’option <code>using ...</code> pour éviter le tracé du premier point) et enfin on fait appel à <code>g(x,y)</code> qui prend en charge le tracé de <code>f</code> une fois que i a atteint la bonne valeur.</p>
<p>Pardon si c’est dense et si je n’ai pas compris le comportement que tu souhaitais pour ton script mais je pense en tout cas t’avoir montré pas mal de possibilités. Pour finir fais attention à tes fichiers de données : sont-ils bien sous forme de blocs ? Si ce n’est pas le cas (tous les points se suivent sans lignes blanches), il te suffira de modifier la limite de ta boucle en <code>int(A_records)-1</code> et d’adapter les options <code>every</code> (par exemple <code>every ::i::i</code> pour ’filout.txt’).</p>
<p>Voilà en esperant avoir pu t’aider, et puisque tu as l’air d’y tenir, la bise <img alt=":)" src="/static/smileys/smile.png"></p>[RESOLU] [gnuplot] gif animation : points statiques, message #1760662018-03-21T19:52:24+01:00Mihro/@Mihrohttps://zestedesavoir.com/forums/sujet/10441/resolu-gnuplot-gif-animation-points-statiques/?page=1#p176066<p>Bonjour, merci pour ta réponse j’avais déjà consulté ce site mais j’ai fait chou blanc .</p>
<p>Je vais vous montrez ce que je veux faire ce sera plus simple, voilà mon script :</p>
<div><table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29</pre></div></td><td class="code"><div class="codehilite"><pre><span></span>reset
set term gif animate delay 5
set output "output.gif"
stats 'filout.txt' name "A" nooutput
stats 'radar.txt' name "B" nooutput
set xrange [-50:1150]
set yrange [-50:300]
p=1
f(x) = a*x**2 + b*x + c
a = 0.1
b = 0.1
c = 0.1
fit f(x) 'radar.txt' via a, b, c
do for [i=1:int(A_blocks)] {
plot 'filout.txt' index (i-1)
if ((i-1)/30>=(p-1)) {
plot 'radar.txt' index (p-1)
p=p+1
}
if (i>=600) {
plot f(x)
}
}
`
</pre></div>
</td></tr></table></div>
<p>Mon objectif est que, à partir de certains i dans ma boucle les points du fichier ’radar.txt’ reste sur le graph quelque soit la frame jusqu’à la fin. De même pour f(x), il faudrait qu’elle apparaisse et reste sur le graph à partir de 600 itérations. </p>
<p>Les points de ’filout.txt’ doivent continuer à changer chaque frame ( seule chose qui marche jusqu’à présent )</p>
<p>Si quelqu’un a une solution je suis preneur, je continue de chercher de mon côté et je vous tiens au jus.</p>
<p>Merci et bisous</p>[RESOLU] [gnuplot] gif animation : points statiques, message #1760082018-03-21T10:00:09+01:00Idrigol/@Idrigolhttps://zestedesavoir.com/forums/sujet/10441/resolu-gnuplot-gif-animation-points-statiques/?page=1#p176008<p>Bonjour Mihro et bienvenue sur le forum,</p>
<p>Je ne vais pas répondre à ta question mais ce site le fera sûrement : <a href="http://www.gnuplotting.org/tag/animation/">gnuplotting</a></p>
<p>C’est une mine d’or pour tout ce qui concerne gnuplot et le lien te montrera notamment quelques exemples d’animations.</p>
<p>Si tu as encore des soucis, n’hésite pas à nous poster un exemple minimal que nous puissions te débugger.</p>[RESOLU] [gnuplot] gif animation : points statiques, message #1759692018-03-20T14:33:22+01:00Mihro/@Mihrohttps://zestedesavoir.com/forums/sujet/10441/resolu-gnuplot-gif-animation-points-statiques/?page=1#p175969<p>Bonjour !</p>
<p>J’ai épluché google et la documentation gnuplot je trouve pas de solutions </p>
<p>en gros je suis entrain de faire un gif avec la fonction : <code>set term gif animate delay 5</code></p>
<p>j’ai plusieurs trucs à tracer sur mon graph et j’aimerai que certains points/courbes restent sur l’image quelque soit la frame </p>
<p>je suis sur que cette option existe mais impossible de trouver </p>
<p>C’est la première fois que je poste ici donc hésitez pas à me dire si un truc va pas,
Merci et bisous</p>Mes fonctions n'apparaissent pas, message #1310682016-11-14T18:39:45+01:00LudoBike/@LudoBikehttps://zestedesavoir.com/forums/sujet/7346/mes-fonctions-napparaissent-pas/?page=1#p131068<p>Ok c'est bon, </p>
<p>comme souvent c'est les points les plus évidents qui posent le plus de problème -_-.</p>
<p>Du coup j'ai écrit ça :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="k">set</span> <span class="nb">xrange</span> <span class="p">[</span><span class="mi">40</span><span class="o">:</span><span class="mi">80</span><span class="p">]</span>
<span class="k">set</span> <span class="nb">yrange</span> <span class="p">[</span><span class="mi">0</span><span class="o">:</span><span class="mi">2000</span><span class="p">]</span>
<span class="k">set</span> <span class="nb">xtics</span> <span class="mi">10</span>
<span class="k">set</span> <span class="nb">ytics</span> <span class="mi">200</span>
<span class="k">set</span> <span class="nb">mxtics</span> <span class="mi">5</span>
<span class="k">set</span> <span class="nb">mytics</span> <span class="mi">2</span>
<span class="k">set</span> <span class="nb">grid</span> <span class="n">mxtics</span> <span class="n">mytics</span>
<span class="k">set</span> <span class="nb">grid</span>
<span class="k">set</span> <span class="nb">title</span> <span class="s">"Coût de production et recette en fonction du nombre de pièce produite"</span>
<span class="k">set</span> <span class="nb">title</span> <span class="n">font</span> <span class="s">",15"</span> <span class="n">norotate</span>
<span class="k">set</span> <span class="nb">key</span> <span class="n">font</span> <span class="s">",15"</span>
<span class="nf">C</span>(x) <span class="o">=</span> <span class="n">x</span><span class="o">**</span><span class="mi">2</span> <span class="o">-</span> <span class="mi">79</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1740</span>
<span class="nf">R</span>(x) <span class="o">=</span> <span class="mi">20</span><span class="o">*</span><span class="n">x</span>
<span class="k">plot</span> <span class="p">[</span><span class="mi">40</span><span class="o">:</span><span class="mi">80</span><span class="p">]</span> <span class="nf">C</span><span class="p">(</span><span class="n">x</span><span class="p">)</span><span class="o">,</span> <span class="nf">R</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
</pre></div>
</td></tr></table>
<p>Ce qui une fois rendu me donne ce magnifique graphique :</p>
<p><figure><img alt="" src="/media/galleries/3140/2606acf7-b20d-43a7-8651-3d003e2d49b1.png"><figcaption>Youhou</figcaption></figure></p>Mes fonctions n'apparaissent pas, message #1309602016-11-13T20:47:20+01:00LudoBike/@LudoBikehttps://zestedesavoir.com/forums/sujet/7346/mes-fonctions-napparaissent-pas/?page=1#p130960<p>A ouais c'est que je basais sur le graphique de l'exercice où l'axe des ordonnées est en centaines d'euros du coup là ça n'affiche effectivement rien.</p>
<p>Je vois ça demain mais normalement ça devrait être bon. </p>Mes fonctions n'apparaissent pas, message #1309552016-11-13T20:15:14+01:00adri1/@adri1https://zestedesavoir.com/forums/sujet/7346/mes-fonctions-napparaissent-pas/?page=1#p130955<p>Salut,</p>
<p>Je ne sais pas ce que tu espères voir, mais il me semble normal par exemple que <span>$x\mapsto 20x$</span> n'apparaisse pas dans <span>$[40,80]\times [0,20]$</span>…</p>Mes fonctions n'apparaissent pas, message #1309532016-11-13T19:58:01+01:00LudoBike/@LudoBikehttps://zestedesavoir.com/forums/sujet/7346/mes-fonctions-napparaissent-pas/?page=1#p130953<p>Bonjour à tous, </p>
<p>j'essaye de faire apparaître 2 fonctions que voici dans gnuplot</p>
<div class="mathjax-wrapper"><mathjax>$$ C(x) = x^2 - 79x + 1740 $$</mathjax></div>
<div class="mathjax-wrapper"><mathjax>$$ R(x) = 20x $$</mathjax></div>
<p>j'ai chercher un peu et j'ai écris ça </p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7
8</pre></div></td><td class="code"><div class="codehilite"><pre><span></span><span class="k">set</span> <span class="nb">grid</span>
<span class="k">set</span> <span class="nb">xrange</span> <span class="p">[</span><span class="mi">40</span><span class="o">:</span><span class="mi">80</span><span class="p">]</span>
<span class="k">set</span> <span class="nb">yrange</span> <span class="p">[</span><span class="mi">0</span><span class="o">:</span><span class="mi">20</span><span class="p">]</span>
<span class="k">set</span> <span class="nb">xtics</span> <span class="p">(</span><span class="mi">40</span><span class="o">,</span><span class="mi">50</span><span class="o">,</span><span class="mi">60</span><span class="o">,</span><span class="mi">70</span><span class="o">,</span><span class="mi">80</span><span class="p">)</span>
<span class="k">set</span> <span class="nb">ytics</span> <span class="p">(</span><span class="mi">2</span><span class="o">,</span><span class="mi">4</span><span class="o">,</span><span class="mi">6</span><span class="o">,</span><span class="mi">8</span><span class="o">,</span><span class="mi">10</span><span class="o">,</span><span class="mi">12</span><span class="o">,</span><span class="mi">14</span><span class="o">,</span><span class="mi">16</span><span class="o">,</span><span class="mi">18</span><span class="o">,</span><span class="mi">20</span><span class="p">)</span>
<span class="k">plot</span> <span class="p">[</span><span class="mi">40</span><span class="o">:</span><span class="mi">80</span><span class="p">]</span> <span class="n">x</span><span class="o">**</span><span class="mi">2</span> <span class="o">-</span> <span class="mi">79</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="mi">1740</span><span class="o">,</span> <span class="mi">20</span><span class="o">*</span><span class="n">x</span>
</pre></div>
</td></tr></table>
<p>Mais pour une raison qui m'est inconnue j’obtiens ça </p>
<p><figure><img alt="" src="/media/galleries/3140/109b14cf-e4e7-4587-ac59-7c9b747095fc.png"><figcaption>Les fonctions n'apparaissent pas !</figcaption></figure></p>
<p>J'ai gnuplot version 5.0 patchlevel 5 et je suis sur Arch Linux.</p>
<p>J'espère que vous pourrez m'aider et je vous remercie d'avance pour vos réponses. <img alt=":)" src="/static/smileys/smile.png"></p>
<p><strong>PS</strong>: Je ne savais pas si ça allait dans la catégorie sciences ou programmation donc je l'ai mis là <img alt=":-°" src="/static/smileys/siffle.png"> .</p>