# Plot in Grasshopper (eventualmente con Python)

**URL:** <https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934>\
**Category:** Grasshopper\
**Created:** [27 Febbraio 2020, 10:53am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934 "2020-02-27T10:53:26Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [27 Febbraio 2020, 10:53am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/1 "2020-02-27T10:53:27Z")

</div>

Ciao Gente, ho necessità di plottare una funzione 2D dentro GH. Non voglio che il grafico venga rappresentato in Rhino. Conoscete un modo rapido per farlo?  
Considerate che ho collegato la libreria numpy in GH se può servire.

 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/d/de0d3cc8e951e5514342d98d2e8c028b7f9a3396.png)

 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/2/29fa04252f782a612d43bf3af983bf5dd6656346.png)

Pare che il pacchetto GH Python Remote consenta di usare Matplotlib, ma io non riesco a capire come posso chiamare la funzione:  
ho provato con plt. ma non lo riconosce, il semplice plot(x,y) non funziona,…

 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/d/dcc36eb2d54bb91d9b91eb4195d13682a5b1da27.png)

e pare comunque che il pacchetto sia installato e connesso con Anaconda Python:

 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/a/a8679cd0d9eede2222e1b125d3d6058845197b48.png)

---

<div class="post-metadata">

**Author:** ![MarcoTraverso](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marcotraverso/32/17249_2.png) [@MarcoTraverso](https://it.discourse.mcneel.com/u/MarcoTraverso)\
**Post date:** [27 Febbraio 2020, 11:31am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/2 "2020-02-27T11:31:51Z")

</div>

Per una funzione y=f(x) potresti usare Quick Graph:

 ![2020-02-27-quick-graph](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/2/24a93d5bc2b8a6de2cef61de83ea6a9c98b07894.png)

Cercavi qualcosa di questo tipo?

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [27 Febbraio 2020, 11:33am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/3 "2020-02-27T11:33:39Z")

</div>

Grazie Marco, ho già provato ma non fa per me per il semplice fatto che non visualizzo valori e label.

L’ideale sarebbe questo [https://kongsgaard.eu/graph-plotter-component.html](https://kongsgaard.eu/graph-plotter-component.html) ma troppo incasinato per me che sto iniziando ora a mettere mani a Python.

---

<div class="post-metadata">

**Author:** ![MarcoTraverso](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marcotraverso/32/17249_2.png) [@MarcoTraverso](https://it.discourse.mcneel.com/u/MarcoTraverso)\
**Post date:** [27 Febbraio 2020, 11:43am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/4 "2020-02-27T11:43:31Z")

</div>

Immaginavo che non andasse bene per qualche motivo 🙂

Come mai vuoi evitare di creare il grafico in Rhino?

Potresti usare un plugin che crea immagini a partire da curve (Squid) e che ti consentirebbe di salvare i grafici su disco a partire da geometrie in Grasshopper (e/o di visualizzarle in anteprima in Grasshopper), senza che niente venga visualizzato nella viewport di Rhino.

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [27 Febbraio 2020, 11:56am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/5 "2020-02-27T11:56:18Z")

</div>

Sapresti indicarmi come step by step?

vorrei che in Rhino ci fosse solo il disegno che è la risultante di una serie di parametri impostati in GH.  
Questo perché, effettuato il progetto di massima ed inseriti tutti i layers in un’unica cartella, vorrei poterne variare l’assetto complessivo. Altri oggetti quali grafici o altro, in quanto strumenti di progetto teorico, potrebbero disturbare.

In pratica scelgo un profilo, ne calcolo i coefficienti aerodinamici in funzione della quota e della densità dell’aria, calcolo di dati relativi alla forma in pianta, coeff. di Oswald, la velocità di crociera ed in seguito i carichi e prestazioni.

Sto seriamente pensando di fare tutto in Simulink e poi passare i parametri a GH e in questo modo non avrei necessità di nulla (conosco sia Matlab che Simulink), ma volevo provare a non dipendere da software costosi e giungere al medesimo risultato con un rapporto costi/benefici ottimale.

---

<div class="post-metadata">

**Author:** ![MarcoTraverso](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marcotraverso/32/17249_2.png) [@MarcoTraverso](https://it.discourse.mcneel.com/u/MarcoTraverso)\
**Post date:** [27 Febbraio 2020, 4:34pm UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/6 "2020-02-27T16:34:00Z")

</div>

Ti allego un esempio, fatto con Squid:

 ![2020-02-27-squid-image-example](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/2/2e7a586946048608641872317d36493e8767adda.png)

_Ref Circle_ e _Ref Rect_ sono due curve (le puoi creare in Rhino oppure generare in Grasshopper.

Ref Rect la usi per definire il bordo dell’immagine da esportare, 1 unità = 1 pixel.

All’interno di quel rettangolo generi le curve che vuoi (assi, note, testi,ecc. - in questo caso il cerchio) e le colleghi ad un componente _Draw_ (icona con la matita), a cui colleghi anche un componente _Outline_ (che definisce colore e spessore della linea) e - se serve - un componente _Fill Solid_ per definire un riempimento.

Gli output dei vari componenti Draw sono “istruzioni” che vanno unite in una singola lista con un Merge. L’ultima istruzione è il componente Save che permette di salvare l’immagine su disco. Ogni volta che viene calcolata la soluzione, il file viene sovrascritto.

La lista con tutte le istruzioni è collegata al componente Squid - che le esegue - e l’output (bitmap) può essere visualizzato su Grasshopper tramite _Quick Preview_.

NOTA: io utilizzo una versione del plugin Squid modificata per funzionare con ShapeDiver. Se vuoi usare la stessa versione la trovi all’interno dell’installer di ShapeDiver (sempre su Food4Rhino) altrimenti puoi installare la versione originale di Squid, le funzionalità dovrebbero essere pressoché identiche.

[2020-02-27-squid-image-example.gh](https://it.discourse.mcneel.com/uploads/short-url/tFMuAigYWw5cIhPSrBRgzTPDBGQ.gh) (15,5 KB)

> [@luca.filippone](#):
>
> vorrei che in Rhino ci fosse solo il disegno che è la risultante di una serie di parametri impostati in GH.  
> Questo perché, effettuato il progetto di massima ed inseriti tutti i layers in un’unica cartella, vorrei poterne variare l’assetto complessivo. Altri oggetti quali grafici o altro, in quanto strumenti di progetto teorico, potrebbero disturbare.

Questo non è un problema, tutto quello che generi in Grasshopper rimane lì.

> [@luca.filippone](#):
>
> Sto seriamente pensando di fare tutto in Simulink e poi passare i parametri a GH e in questo modo non avrei necessità di nulla (conosco sia Matlab che Simulink), ma volevo provare a non dipendere da software costosi e giungere al medesimo risultato con un rapporto costi/benefici ottimale

Non so nello specifico quali calcoli devi fare, però capisco la situazione: personalmente se riesco a rimanere all’interno di un solo programma (massimo due) in genere trovo sia più semplice la gestione. Devo dire che Grasshopper finora si è rivelato MOLTO flessibile, l’ho usato per generare texture parametriche, animazioni, tabelle di dati ecc.

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [27 Febbraio 2020, 8:38pm UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/7 "2020-02-27T20:38:01Z")

</div>

Grazie Marco, ho aperto il tuo file, è normale che non veda le connessioni?

 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/6/6137a1fdffae160ab920869af62517410cd004df.png)

Era bella l’idea di usare solo Rhino-GH, lo userò insieme a Matlab, che si presta a notevoli evoluzioni e al calcolo differenziale indispensabile.

Vediamo cosa viene fuori. Userò un file csv su cui salverò le variabili e dirò a GH di leggere lì i valori: hai qualche suggerimento in merito?

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [27 Febbraio 2020, 9:40pm UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/8 "2020-02-27T21:40:38Z")

</div>

ottimo Marco 👍

> [@luca.filippone](#):
>
> è normale che non veda le connessioni?

io l’ho fatto da zero

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [28 Febbraio 2020, 7:42am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/9 "2020-02-28T07:42:49Z")

</div>

ma che bravo. 😄

---

<div class="post-metadata">

**Author:** ![MarcoTraverso](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marcotraverso/32/17249_2.png) [@MarcoTraverso](https://it.discourse.mcneel.com/u/MarcoTraverso)\
**Post date:** [28 Febbraio 2020, 8:12am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/10 "2020-02-28T08:12:26Z")

</div>

> [@luca.filippone](#):
>
> Marco, ho aperto il tuo file, è normale che non veda le connessioni?

E’ normale se non hai il plugin installato… l’avevi installato?

Quando apri una definizione che contiene componenti di un plugin che non hai, Grasshopper mostra una finestra di avviso e la definizione si carica senza quei componenti e relative connessioni (il che tra l’altro rende molto complicato capire dove e quali sono i componenti mancanti).

---

<div class="post-metadata">

**Author:** ![MarcoTraverso](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marcotraverso/32/17249_2.png) [@MarcoTraverso](https://it.discourse.mcneel.com/u/MarcoTraverso)\
**Post date:** [28 Febbraio 2020, 8:13am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/11 "2020-02-28T08:13:59Z")

</div>

Bene!  
Come hai visto, tutto sommato l’uso è abbastanza intuitivo, e può servire per diverse cosette,

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [28 Febbraio 2020, 9:51am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/12 "2020-02-28T09:51:01Z")

</div>

si, Rhino me lo ha segnalato, mi ha restituito un errore durante il tentativo di installazione automatica percui ho scaricato il pacchetto da [qui](http://grasshopperdocs.com/addons/shapediver.html).

ps In pratica, questo pacchetto mi può consentire di mettere online il modello che sto realizzando e mostrarne le potenzialità (modifiche tramite parametri GH)? Mi alletta l’idea di pubblicare il modello su un mio sito e pian piano mostrare i progressi.

---

<div class="post-metadata">

**Author:** ![MarcoTraverso](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marcotraverso/32/17249_2.png) [@MarcoTraverso](https://it.discourse.mcneel.com/u/MarcoTraverso)\
**Post date:** [28 Febbraio 2020, 10:18am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/13 "2020-02-28T10:18:27Z")

</div>

> [@luca.filippone](#):
>
> questo pacchetto mi può consentire di mettere online il modello che sto realizzando e mostrarne le potenzialità (modifiche tramite parametri GH)?

Sì, ShapeDiver fa proprio quello (l’intento principale è quello di creare dei configuratori di prodotti per negozi online).

Questi sono un paio di modelli dimostrativi che ho pubblicato tramite ShapeDiver:

[https://www.marcotraverso.it/interactive-3d-parametric-tower-design/](https://www.marcotraverso.it/interactive-3d-parametric-tower-design/)  
[https://www.marcotraverso.it/interactive-parametric-car-wheel-design/](https://www.marcotraverso.it/interactive-parametric-car-wheel-design/)

Ovviamente i modelli vanno ottimizzati per la visualizzazione online - il sistema funziona bene ma ha alcuni vincoli che vanno rispettati.

Il piano gratuito al momento consente di pubblicare modelli solo sul sito di ShapeDiver:  
[https://app.shapediver.com/](https://app.shapediver.com/)

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [28 Febbraio 2020, 11:17am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/14 "2020-02-28T11:17:15Z")

</div>

> [@MarcoTraverso](#):
>
> il sistema funziona bene ma ha alcuni vincoli che vanno rispettati.

per quello che sto facendo è ridicolo. Stiamo sui 350MB (la fuso non è parametrizzata, ma sarebbe interessante farlo).

---

<div class="post-metadata">

**Author:** ![MarcoTraverso](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/marcotraverso/32/17249_2.png) [@MarcoTraverso](https://it.discourse.mcneel.com/u/MarcoTraverso)\
**Post date:** [28 Febbraio 2020, 11:39am UTC](https://it.discourse.mcneel.com/t/plot-in-grasshopper-eventualmente-con-python/2934/15 "2020-02-28T11:39:11Z")

</div>

Per ridurre le dimensioni spesso è possibile utilizzare le mesh, ma sono d’accordo che quel tipo di progetti non si prestano molto a essere visualizzati online… 🙂
