
Di seguito trovi una guida passo‑passo, testata su Ubuntu, per avere Octave come kernel in Jupyter Notebook e visualizzare i grafici inline (dentro le celle). Includo comandi da terminale, configurazioni comuni e suggerimenti per risolvere problemi frequenti.
1. Panoramica dei passaggi
-
Installare GNU Octave e Jupyter (se non già presenti).
-
Installare e registrare un kernel Octave per Jupyter (es.
octave_kernel). -
Configurare il backend grafico di Octave per output inline (usare
gnuplot/qte il supporto per immagini inline). -
Testare con esempi di plotting e regolare impostazioni (dimensione figura, formato immagine, risoluzione).
2. Installazione prerequisiti (Ubuntu)
Apri un terminale e esegui:
bash<?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/2000/svg" NS = "http://www.w3.org/2000/svg" />
# Aggiorna pacchetti
sudo apt update
# Installa Octave
sudo apt install -y octave
# Installa pip e jupyter (se non li hai)
sudo apt install -y python3-pip
pip3 install --user jupyter
# Installa il kernel Octave per Jupyter
pip3 install --user octave_kernel
Se preferisci usare conda:
bash
conda install -c conda-forge octave jupyterlab octave_kernel
3. Registrare e verificare il kernel Octave in Jupyter
Dopo l’installazione, Jupyter dovrebbe riconoscere automaticamente il kernel Octave. Avvia Jupyter Notebook:
bash
jupyter notebook
Nella pagina web di Jupyter, clicca su New e verifica che compaia Octave nella lista dei kernel. In alternativa, da terminale puoi elencare i kernel disponibili:
bash
jupyter kernelspec list
Dovresti vedere una voce tipo octave o octave_kernel.
4. Configurare l’output grafico inline
Per mostrare i grafici inline (immagini incorporate nella cella), usa il kernel octave_kernel che già gestisce l’output grafico convertendo le figure in immagini PNG/SVG visualizzate nel notebook. Ecco come procedere:
4.1 Impostazioni consigliate nella prima cella
Nella prima cella del notebook (kernel Octave) esegui:
octave
graphics_toolkit("gnuplot"); % o "qt" se preferisci e se disponibile
set(0, "defaultfigurevisible", "on"); % assicura che le figure vengano create
% Opzionale: impostare dimensione e risoluzione
figure('position',[100,100,800,600]); % larghezza 800 x altezza 600
octave_kernel cattura automaticamente la figura e la mostra inline quando la cella termina. Se non vedi nulla, prova a forzare il salvataggio e la visualizzazione:
octave
plot(1:10, rand(1,10));
drawnow(); % forza il rendering
4.2 Forzare output come immagine (workaround)
Se il kernel non mostra automaticamente la figura, puoi salvarla e poi visualizzarla con la funzione imshow o usando la visualizzazione di Jupyter (ma normalmente non serve):
octave
plot(1:10, rand(1,10));
print -dpng -r150 myplot.png; % salva PNG a 150 DPI
% poi in una cella Python/Markdown mostrare l'immagine, ma questo è raramente necessario
5. Backend grafico: gnuplot vs qt
-
gnuplot: spesso più stabile in ambiente server/headless; funziona bene per output PNG/SVG.
-
qt: fornisce finestre interattive locali; può essere utile in desktop, ma non sempre necessario per inline.
Per cambiare toolkit:
octave
graphics_toolkit("gnuplot"); % consigliato per notebook
% oppure
graphics_toolkit("qt");
Se usi qt e non vedi le figure inline, torna a gnuplot.
6. Problemi comuni e soluzioni
-
Kernel Octave non appare in Jupyter
-
Verifica che
octave_kernelsia installato conpip3 show octave_kernel. -
Riavvia Jupyter e controlla
jupyter kernelspec list.
-
-
Nessun output grafico inline
-
Assicurati di usare
octave_kernel(non un kernel Python). -
Prova
graphics_toolkit("gnuplot")edrawnow(). -
Controlla i log del server Jupyter nel terminale per errori.
-
-
Figure vuote o bassa risoluzione
-
Usa
figure('position',[x,y,width,height])eprint -dpng -r300per salvare con risoluzione maggiore.
-
-
Ambiente headless (server senza display)
-
gnuplotè preferibile; assicurati che non servano librerie X11. Se necessario, installaxvfbe avvia Jupyter sottoxvfb-run.
-
Esempio per server headless:
bash
sudo apt install -y xvfb
xvfb-run -s "-screen 0 1920x1080x24" jupyter notebook
7. Esempio completo di notebook (cella Octave)
Copia e incolla in una cella con kernel Octave:
octave
% Impostazioni iniziali
graphics_toolkit("gnuplot");
set(0, "defaultfigurevisible", "on");
% Dati di esempio e plot
x = linspace(0,2*pi,200);
y = sin(3*x).*exp(-0.3*x);
figure('position',[100,100,800,400]);
plot(x,y,'-b','LineWidth',1.5);
title('Esempio di plot inline in Octave');
xlabel('x'); ylabel('y');
grid on;
drawnow();
Al termine della cella dovresti vedere la figura incorporata.
8. Suggerimenti pratici
-
Se lavori spesso con notebook, considera l’uso di JupyterLab (interfaccia più moderna).
-
Mantieni aggiornati
octave_kernele Octave per beneficiare di bugfix relativi al rendering. -
Per grafici complessi o interattivi, valuta l’uso di Python (Matplotlib, Plotly) se l’interattività è prioritaria; altrimenti Octave è ottimo per plotting statico inline.
-
Se vuoi esportare figure in vettoriale, prova
print -depscoprint -dsvg.
9. Risorse utili
-
Documentazione
octave_kernel(installazione e opzioni). -
Manuale GNU Octave (sezione
graphics_toolkit,print,drawnow). -
Guide Jupyter su kernel custom e troubleshooting.












