25 views (last 30 days)
Show older comments
AP on 21 May 2024 at 11:47
-
-
Link
Direct link to this question
https://jmaab.mathworks.com/matlabcentral/answers/2121016-is-it-possible-to-use-tiledlayout-to-create-a-figure-with-plots-and-a-pdf-image-per-attachment
Answered: Abhishek Kumar Singh on 21 May 2024 at 12:24
- plots and image.pdf
Is it possible to use tiledlayout to create a figure with plots and a PDF image (or other vector image)? (per attachment)
tiledlayout nexttile recognizes different "plot" commands. How would I get nexttile to recognize a PDF image as a plot? And then add a title to the image just like a plot title?
Or is there a bettery way to do this than using tiledlayout?
0 Comments Show -2 older commentsHide -2 older comments
Show -2 older commentsHide -2 older comments
Sign in to comment.
Sign in to answer this question.
Answers (2)
Pratyush Swain on 21 May 2024 at 12:20
Open in MATLAB Online
Hi AP,
Using "tiledlayout" in MATLAB, you can create a figure that includes both plots and images.But MATLAB doesn't support PDF images for this purpose, you can leverage external tools to convert pdf to an image format (such as PNG/JPG) and then display it using the "imshow" or "imagesc" function within the "tiledlayout"
% Create a tiled layout
t = tiledlayout(2,2);
% Plot exapin the first three tiles
nexttile;
plot(rand(10,1));
title('MATLAB Plot');
nexttile;
plot(sin(1:0.1:10));
title('MATLAB Plot');
nexttile;
plot(cos(1:0.1:10));
title('MATLAB Plot');
% Display an image in the fourth tile
nexttile;
% Read the converted PDF image
img = imread('path to your image');
imagesc(img);
% You can add a title too
title('Image Plot');
I tried the implementation with a demo image and this was the output:
For more information on nexttile, you can refer to https://www.mathworks.com/help/matlab/ref/nexttile.html
Hope this helps.
0 Comments Show -2 older commentsHide -2 older comments
Show -2 older commentsHide -2 older comments
Sign in to comment.
Abhishek Kumar Singh on 21 May 2024 at 12:24
Open in MATLAB Online
- cute_cat.jpg
Yes, it's possible to combine plots and vector images (such as PDF images) within a figure using tiledlayout and nexttile in MATLAB. While nexttile is primarily designed for plotting axes, you can still use it to display images by creating an axes object and then displaying the image within that axes.
Here's a general approach to achieve this:
- Use a custom MATLAB function extractImagePDF to extract images from a native PDF and save them as JPG files. Follow the MATLAB Answer for code and usage of the custom function at: https://www.mathworks.com/matlabcentral/answers/709623-how-can-i-convert-a-scanned-pdf-to-an-image-using-matlab.
- Create a tiled layout using tiledlayout.
- Use nexttile to create an axes for each plot or image.
- For plots, use standard plotting functions like plot, scatter, etc., to generate the desired plot in each axes.
- For images, use the imshow function to display the PDF image within the axes.
- Optionally, add titles to the plots and images using the title function.
Here's an example code snippet demonstrating this approach, after generating a JPG/PNG image:
% Define x values for the waves
x = linspace(0, 2*pi, 100);
% Create sine, cosine, and tangent waves
y1 = sin(x);
y2 = cos(x);
y3 = tan(x);
% Create tiled layout with 2 rows and 2 columns
tiledlayout(2, 2);
% Plot sine wave
nexttile;
plot(x, y1);
title('Sine Wave');
% Plot cosine wave
nexttile;
plot(x, y2);
title('Cosine Wave');
% Plot tangent wave
nexttile;
plot(x, y3);
title('Tangent Wave');
% Load and display an image of a cat
catImage = imread('cute_cat.jpg'); % Load cat image
nexttile;
imshow(catImage);
title('A Cute Cat');
% Adjust layout
tiledlayout.TileSpacing = 'compact';
tiledlayout.Padding = 'compact';
% Export the figure as a PDF
exportgraphics(gcf, 'plot_and_image.pdf', 'ContentType', 'vector');
This code will create a figure with three subplots displaying sine, cosine, and tangent waves, and a fourth subplot displaying the image of a cat. Finally, it will export the figure as a PDF named plot_and_image.pdf.
Hope it helps!
0 Comments Show -2 older commentsHide -2 older comments
Show -2 older commentsHide -2 older comments
Sign in to comment.
Sign in to answer this question.
See Also
Categories
MATLABGraphicsFormatting and Annotation3-D Scene ControlLighting, Transparency, and Shading
Find more on Lighting, Transparency, and Shading in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
An Error Occurred
Unable to complete the action because of changes made to the page. Reload the page to see its updated state.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- Deutsch
- English
- Français
- United Kingdom(English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)
Contact your local office