2012-07-17 19 views
7

Sto provando a creare un grafico matlab con più assi x uno sotto l'altro e solo un asse y.matlab multiple x axis uno sotto l'altro

Ho esaminato lo scambio di file di Mathworks e ci sono solo suggerimenti/script per più assi y. Mi piacerebbe ottenere qualcosa come this question for R.

+1

Forse uno di questi può aiutare: - [Uso X- multipla e Y-Axes] (http://www.mathworks.co.uk/help/techdoc/creating_plots/f1-11215.html) - [linkaxes] (http://www.mathworks.co.uk/help/ TECHDOC/ref/linkaxes.html) – Drodbar

risposta

3

Se in realtà non c'è bisogno di tracciare i dati sugli assi secondari, e sono solo li utilizzano per mostrare scala (come l'esempio si è collegato a), si può fare semplicemente aggiungendo un secondo (o terzo, ecc) l'asse nella posizione appropriata, e impostare l'altezza molto piccola:

ax2 = axes('Position',[0.1 0.1 0.8 0.001],'Color','none') 

Poi impostare le etichette delle tacche appropriato.

4

Ecco una soluzione esempio, se avete solo bisogno di un secondo asse per mostrare una scala diversa (soluzione di Jeff_K ma più elaborato):

first_axis = gca; 
sqz = 0.12; %// distance to squeeze the first plot 
set(first_axis, 'Position', get(first_axis, 'Position') + [0 sqz 0 -sqz ]); 
ax2 = axes('Position', get(first_axis, 'Position') .* [1 1 1 0.001] - [0 sqz 0 0],'Color','none'); 
scale_factor = 42; %// change this to your satisfaction 
xlim(get(first_axis, 'XLim') * scale_factor); 
set(ax2, 'XScale', get(first_axis, 'XScale')); %// make logarithmic if first axis is too 
Problemi correlati