Come per controllare con precisione lo spessore della linea in MATLAB trama?

Vorrei controllare con precisione lo spessore della linea tracciata in MATLAB. Non appena lo 0,5, 1, 2, 3, … punti, ma ad esempio a 0,2 mm. È possibile?

C’è una linea personalizzata di scala e la larghezza minima della linea di dialogo esporta la finestra di installazione, ma che non funziona.

Come per controllare con precisione lo spessore della linea in MATLAB trama?

Codice di esempio:

hf = figure;
ha = axes;
ha.Units = 'centimeters';

t = linspace(0,2*pi);
hl = plot(t,sin(t),'Linewidth',0.1);
axis tight

saveas(hf,'test','pdf')
  • Risposta breve: non è possibile. Suggerimento: l’esportazione come file di grafica vettoriale e regolare linewidth in post-elaborazione. Un altro suggerimento: beh, si specificano i punti di controllo figura dimensione in pixel e es la risoluzione per l’esportazione. Si potrebbe provare a creare una soluzione anche per questo.
  • A seconda del resto del flusso di lavoro, si potrebbe trovare preferibile utilizzare un altro strumento di Lattice, gli utenti hanno TikZ come opzione e il matlab2tikz per lo scambio di file di script è popolare: mathworks.com/matlabcentral/fileexchange/… È anche possibile passare dei parametri per nome, che potrebbe aiutare con l’automazione tex.stackexchange.com/a/120151
  • In base a questa documentazione ufficiale uk.mathworks.com/help/symbolic/mupad_ref/linewidth.html dovrebbe essere possibile utilizzare LineWidth = 0.3*unità di::mm
  • Ma questo funziona solo con il MuPAD e non con la normale trame.
  • Che versione di Matlab stai usando?
  • Al momento della pubblicazione 2014b

 

One Reply
  1. 5

    MatLab utilizza la definizione standard di 1 Punto PostScript (o “Desktop Publishing Point”) = 1/72 di pollice.

    (Si può verificare facilmente con l’esportazione di una figura con, ad esempio, una riga con ‘LineWidth’ uguale a 36. Se si stampa che, senza scala, la linea sulla carta sarà di 1/2 pollice di larghezza)

    Quindi, se volete, una linea di 0,2 mm, è possibile impostare la larghezza della linea a 0.567 o così:

    h = plot([0 0],[0 1]);
    set(h,'LineWidth',0.567);

    e se si desidera impostare come predefinita la larghezza della linea per tutte le trame:

     set(0,'defaultlinelinewidth',0.567)

    per una singola sessione, o mettere in avvio.m file per impostare in modo permanente.

    In risposta a @szymon-bęczkowski: con 2014b e poi, sembra che ci sia un bug in Matlab che imposta il linewidth per un valore minimo di 1 quando l’esportazione in EPS o PDF. Vedere qui per un bug correlati. Così la ‘soluzione’ come è, è quello di attenersi ad linewidth>=1.

    Anche se non sembra per il lavoro ci sia, ti consiglio vivamente di export_fig come alternativa a Matlab è costruito funzionalità di stampa.

    • Questo vuol lavorare? So che posso impostare niente di meno che 1pt (vedi il mio codice di esempio, io uso 0.1), ma la linea non è più sottile sull’uscita della trama.
    • Funziona come un fascino ora (2105b): imgur.com/IeYzGpO
    • che bello sentire.

Lascia un commento