2013-09-24 14 views
6

Come visto in uno screenshot incluso, l'output EPS di matlab sta tagliando l'etichetta sull'asse Y destro.Matlab ylabel cutoff usando la funzione plotyy

Sto utilizzando la funzione plotyy e sto stampando in eps con: print (f1, '- depsc2', 'figure1.eps');

Ho provato a modificare la proprietà paperposition, nonché la proprietà paperize, e questi sembrano mantenere il ridimensionamento con l'altro ad ogni regolazione, e quindi non posso mai aumentare la dimensione della carta a destra.

Ho impostato paperpositionmode su manuale.

Qualcuno ha qualche idea?

Ho creato un codice di esempio che è autosufficiente e replica il problema. Il problema si crea quando si aumentano le dimensioni di spunta e carattere. Tuttavia questo è essenziale per la mia situazione.

close all; 

% example data: 
x = 0:0.01:4; 
y1 = 5*sin(2*pi*x+0.1) + 20; 
y2 = 0.09*sin(2*pi*x); 

tickfontsize = 18; 
labelfontsize = 20; 

% begin figure: 
f1 = figure(1); 
[ax, h1, h2 ] = plotyy(x,y1,x,y2) 

% axis labels and font size: 
set(get(ax(2),'Ylabel'),'String','Test1') ; 
set(get(ax(1),'Ylabel'),'String','test2') ; 
set(get(ax(1),'Ylabel'),'FontSize',labelfontsize) ; 
set(get(ax(2),'Ylabel'),'FontSize',labelfontsize) ; 

% left hand side ticks: 
set(ax(1),'YLim',[6 10]); 
set(ax(1),'YTick',[6:1:10]); 
set(ax(1),'FontSize',tickfontsize); 

% right hand side ticks: 
set(ax(2),'YLim',[-0.13 0.14]); 
set(ax(2),'YTick',[-0.1:0.05:0.1]); 
set(ax(2),'FontSize',tickfontsize); 

%print figure to eps: 
print(f1,'-depsc2', './simpleoutput.eps'); 

Screenshot of EPS output

+0

Puoi fornire un esempio di lavoro minimo che rigenera il tuo problema, per favore? Con un 'plotyy' veloce e sporco e il tuo comando' print' non sono riuscito a ottenere un'etichetta tagliata. – Schorsch

+0

@Schorsch Grazie per il tuo commento, ho incluso del codice che replicherà il problema per te. – CptLightning

+0

Qualcuno ha fatto una domanda simile sul gruppo di discussione di Mathworks tre anni fa: [link] (http://www.mathworks.com/matlabcentral/newsreader/view_thread/286282). Sembra che non ci fosse una soluzione automatica semplice per questo problema e devi fare come nella risposta di Luis. – Roun

risposta

6

Change assi grado di renderli più stretto:

set(ax(1),'Position', [0.13 0.11 0.775-.08 0.815]); 
set(ax(2),'Position', [0.13 0.11 0.775-.08 0.815]); 
% Original position was [0.13 0.11 0.775 0.815] 
% Applied change in width: "-.08". Choose as desired 

Se è necessario mantenere gli assi rapporto, si dovrebbe anche modificare l'altezza (quarto numero).

+0

grazie per il vostro aiuto, molto apprezzato. – CptLightning

Problemi correlati