description | name | display_as | order | permalink | thumnail_github | layout | language | page_type |
---|---|---|---|---|---|---|---|---|
How to make Subplots plots in MATLAB<sup>®</sup> with Plotly. | Subplots | multiple_axes | 1 | matlab/subplots/ | subplots.png | base | matlab | u-guide |
Create a figure with two stacked subplots. Plot a sine wave in each one.
subplot(2,1,1); x = linspace(0,10); y1 = sin(x); plot(x,y1) subplot(2,1,2); y2 = sin(5*x); plot(x,y2) fig2plotly(gcf);
Create a figure divided into four subplots. Plot a sine wave in each one and title each subplot.
subplot(2,2,1) x = linspace(0,10); y1 = sin(x); plot(x,y1) title('Subplot 1: sin(x)') subplot(2,2,2) y2 = sin(2*x); plot(x,y2) title('Subplot 2: sin(2x)') subplot(2,2,3) y3 = sin(4*x); plot(x,y3) title('Subplot 3: sin(4x)') subplot(2,2,4) y4 = sin(8*x); plot(x,y4) title('Subplot 4: sin(8x)') fig2plotly(gcf);
Create a figure containing with three subplots. Create two subplots across the upper half of the figure and a third subplot that spans the lower half of the figure. Add titles to each subplot.
subplot(2,2,1); x = linspace(-3.8,3.8); y_cos = cos(x); plot(x,y_cos); title('Subplot 1: Cosine') subplot(2,2,2); y_poly = 1 - x.^2./2 + x.^4./24; plot(x,y_poly,'g'); title('Subplot 2: Polynomial') subplot(2,2,[3,4]); plot(x,y_cos,'b',x,y_poly,'g'); title('Subplot 3 and 4: Both') fig2plotly(gcf);
Create a figure with four stem plots of random data. Then replace the second subplot with empty axes.
for k = 1:4 data = rand(1,10); subplot(2,2,k) stem(data) end fig2plotly(gcf);
Create a figure with two subplots that are not aligned with grid positions. Specify a custom position for each subplot.
pos1 = [0.1 0.3 0.3 0.3]; subplot('Position',pos1) y = magic(4); plot(y) title('First Subplot') pos2 = [0.5 0.15 0.4 0.7]; subplot('Position',pos2) bar(y) title('Second Subplot') fig2plotly(gcf);
Create a figure with two subplots. Assign the Axes
objects to the variables ax1
and ax2
. Specify the Axes
objects as inputs to the plotting functions to ensure that the functions plot into a specific subplot.
ax1 = subplot(2,1,1); Z = peaks; plot(ax1,Z(1:20,:)) ax2 = subplot(2,1,2); plot(ax2,Z) fig2plotly(gcf);
Modify the axes by setting properties of the Axes
objects. Change the font size for the upper subplot and the line width for the lower subplot. Some plotting functions set axes properties. Execute plotting functions before specifying axes properties to avoid overriding existing axes property settings. Use dot notation to set properties.
ax1 = subplot(2,1,1); Z = peaks; plot(ax1,Z(1:20,:)) ax2 = subplot(2,1,2); plot(ax2,Z) ax1.FontSize = 15; ax2.LineWidth = 2; fig2plotly(gcf);
Create a line chart. Then convert the axes so that it is the lower subplot of the figure. The subplot function uses the figure in which the original axes existed.
x = linspace(1,10); y = sin(x); plot(x,y) title('Sine Plot') fig2plotly(gcf);
x = linspace(1,10); y = sin(x); plot(x,y) title('Sine Plot') ax = gca; subplot(2,1,2,ax) fig2plotly(gcf);
Combine axes that exist in separate figures in a single figure with subplots.
Create two plots in two different figures. Assign the Axes
objects to the variables ax1
and ax2
. Assign the Legend
object to the variable lgd
.
figure x = linspace(0,10); y1 = sin(x); plot(x,y1) title('Line Plot 1') fig2plotly(gcf);
figure x = linspace(0,10); y1 = sin(x); plot(x,y1) title('Line Plot 1') ax1 = gca; figure y2 = 2*sin(x); plot(x,y2) title('Line Plot 2') lgd = legend('2*Sin(x)'); fig2plotly(gcf);
figure x = linspace(0,10); y1 = sin(x); plot(x,y1) title('Line Plot 1') ax1 = gca; figure y2 = 2*sin(x); plot(x,y2) title('Line Plot 2') lgd = legend('2*Sin(x)'); ax2 = gca; fig2plotly(gcf);
Create copies of the two Axes
objects using copyobj
. Specify the parents of the copied axes as a new figure. Since legends and colorbars do not get copied with the associated axes, copy the legend with the axes.
figure x = linspace(0,10); y1 = sin(x); plot(x,y1) title('Line Plot 1') ax1 = gca; figure y2 = 2*sin(x); plot(x,y2) title('Line Plot 2') lgd = legend('2*Sin(x)'); ax2 = gca; fnew = figure; ax1_copy = copyobj(ax1,fnew); subplot(2,1,1,ax1_copy) copies = copyobj([ax2,lgd],fnew); ax2_copy = copies(1); subplot(2,1,2,ax2_copy) fig2plotly(gcf);
fm = 20e3; fc = 100e3; tstep = 100e-9; tmax = 200e-6; t = 0:tstep:tmax; xam = (1 + cos(2*pi*fm*t)).*cos(2*pi*fc*t); T = 1e-6; N = 200; nT = 0:T:N*T; xn = (1 + cos(2*pi*fm*nT)).*cos(2*pi*fc*nT); fig = figure; subplot(2, 2, [1 3]); stem(nT,xn); xlabel('t'); ylabel('x[n]'); title('Sampled Every T=1e-6 '); subplot(2, 2, 2); plot(t, xam); axis([0 200e-6 -2 2]); xlabel('t'); ylabel('xam(t) '); title('AM Modulated Signal'); subplot(2, 2, 4); plot(nT, xn); xlabel('t'); ylabel('x_zoh(t)'); title('Reconstruction at T=4e-6 '); fig2plotly(fig);
trace1 = struct(... 'x', [1, 2, 3], ... 'y', [4, 5, 6], ... 'type', 'scatter'); trace2 = struct(... 'x', [20, 30, 40], ... 'y', [50, 60, 70], ... 'xaxis', 'x2', ... 'yaxis', 'y2', ... 'type', 'scatter'); data = {trace1, trace2}; layout = struct(... 'xaxis', struct('domain', [0, 0.45]), ... 'yaxis2', struct('anchor', 'x2'), ... 'xaxis2', struct('domain', [0.55, 1])); plotly(data, struct('layout', layout));
trace1 = struct(... 'x', [1, 2, 3], ... 'y', [4, 5, 6], ... 'type', 'scatter'); trace2 = struct(... 'x', [20, 30, 40], ... 'y', [50, 60, 70], ... 'xaxis', 'x2', ... 'yaxis', 'y2', ... 'type', 'scatter'); data = {trace1, trace2}; layout = struct(... 'xaxis', struct('domain', [0, 0.7]), ... 'yaxis2', struct('anchor', 'x2'), ... 'xaxis2', struct('domain', [0.8, 1])); plotly(data, struct('layout', layout));
trace1 = struct(... 'x', [1, 2, 3], ... 'y', [4, 5, 6], ... 'type', 'scatter'); trace2 = struct(... 'x', [20, 30, 40], ... 'y', [50, 60, 70], ... 'xaxis', 'x2', ... 'yaxis', 'y2', ... 'type', 'scatter'); trace3 = struct(... 'x', [300, 400, 500], ... 'y', [600, 700, 800], ... 'xaxis', 'x3', ... 'yaxis', 'y3', ... 'type', 'scatter'); trace4 = struct(... 'x', [4000, 5000, 6000], ... 'y', [7000, 8000, 9000], ... 'xaxis', 'x4', ... 'yaxis', 'y4', ... 'type', 'scatter'); data = {trace1, trace2, trace3, trace4}; layout = struct(... 'xaxis', struct('domain', [0, 0.45]), ... 'yaxis', struct('domain', [0, 0.45]), ... 'xaxis4', struct(... 'domain', [0.55, 1], ... 'anchor', 'y4'), ... 'xaxis3', struct(... 'domain', [0, 0.45], ... 'anchor', 'y3'), ... 'xaxis2', struct('domain', [0.55, 1]), ... 'yaxis2', struct(... 'domain', [0, 0.45], ... 'anchor', 'x2'), ... 'yaxis3', struct('domain', [0.55, 1]), ... 'yaxis4', struct(... 'domain', [0.55, 1], ... 'anchor', 'x4')); plotly(data, struct('layout', layout));
trace1 = struct(... 'x', [0, 1, 2], ... 'y', [10, 11, 12], ... 'type', 'scatter'); trace2 = struct(... 'x', [2, 3, 4], ... 'y', [100, 110, 120], ... 'xaxis', 'x2', ... 'yaxis', 'y2', ... 'type', 'scatter'); trace3 = struct(... 'x', [3, 4, 5], ... 'y', [1000, 1100, 1200], ... 'xaxis', 'x3', ... 'yaxis', 'y3', ... 'type', 'scatter'); data = {trace1, trace2, trace3}; layout = struct(... 'yaxis', struct('domain', [0, 0.266]), ... 'legend', struct('traceorder', 'reversed'), ... 'xaxis3', struct('anchor', 'y3'), ... 'xaxis2', struct('anchor', 'y2'), ... 'yaxis2', struct('domain', [0.366, 0.633]), ... 'yaxis3', struct('domain', [0.733, 1])); plotly(data, struct('layout', layout));
trace1 = struct(... 'x', [0, 1, 2], ... 'y', [10, 11, 12], ... 'type', 'scatter'); trace2 = struct(... 'x', [2, 3, 4], ... 'y', [100, 110, 120], ... 'yaxis', 'y2', ... 'type', 'scatter'); trace3 = struct(... 'x', [3, 4, 5], ... 'y', [1000, 1100, 1200], ... 'yaxis', 'y3', ... 'type', 'scatter'); data = {trace1, trace2, trace3}; layout = struct(... 'yaxis', struct('domain', [0, 0.33]), ... 'legend', struct('traceorder', 'reversed'), ... 'yaxis2', struct('domain', [0.33, 0.66]), ... 'yaxis3', struct('domain', [0.66, 1])); plotly(data, struct('layout', layout));
trace1 = struct(... 'x', [1, 2, 3], ... 'y', [2, 3, 4], ... 'type', 'scatter'); trace2 = struct(... 'x', [20, 30, 40], ... 'y', [5, 5, 5], ... 'xaxis', 'x2', ... 'yaxis', 'y', ... 'type', 'scatter'); trace3 = struct(... 'x', [2, 3, 4], ... 'y', [600, 700, 800], ... 'xaxis', 'x', ... 'yaxis', 'y3', ... 'type', 'scatter'); trace4 = struct(... 'x', [4000, 5000, 6000], ... 'y', [7000, 8000, 9000], ... 'xaxis', 'x4', ... 'yaxis', 'y4', ... 'type', 'scatter'); data = {trace1, trace2, trace3, trace4}; layout = struct(... 'xaxis', struct('domain', [0, 0.45]), ... 'yaxis', struct('domain', [0, 0.45]), ... 'xaxis4', struct(... 'domain', [0.55, 1], ... 'anchor', 'y4'), ... 'xaxis2', struct('domain', [0.55, 1]), ... 'yaxis3', struct('domain', [0.55, 1]), ... 'yaxis4', struct(... 'domain', [0.55, 1], ... 'anchor', 'x4')); plotly(data, struct('layout', layout));