As you know figures in a journal paper must have a specific width (e.g. column width or full paper width), however, adjusting the figure size after plotting it changes the resolution and makes the font sizes non-uniform and often inappropriate (appear too big or small). So when I have to specify the width manually before plotting I encounter two issues: the margins and the aspect ratio. I want to make maximum use of the space so I want to have a tight bounding box. In both Matlab and Python this task is a real headache, and leads to either changing the aspect ratio or the initial size of the figure. Do you (personally) crop the white spaces or leave them to be? And do you use the default aspect ratio? If no, how do you set it?

Edit: I am NOT new to these software and my question is not about technical details. I am just curious to know what general approaches people take.

1 Answer 1


There are two general approaches:

  1. Use the software you plot in (like Matlab or Python) to create figures of the proper size. It may be a bit of a pain but both can let you set useful dimensions. Default options may leave you with a lot of whitespace but you can adjust the defaults. It's up to you to learn the particulars of each software, though.

  2. Use another software to adjust dimensions of figures. For example, I've often used Illustrator to modify Matlab figures saved as a PDF. Whatever software you use you will want to use something that works with vector graphics.

Some journals, particularly medical journals in my experience, will actually re-plot figures for you, so make sure you know what the journal's expectations are.

  • I have tried both approaches. As I mentioned in the question, unfortunately Python and especially Matlab don't have the proper capability to adjust the figures easily. I also tried the second approach with Adobe illustrator to adjust an EPS format vector figure and again sadly this time, the text boxes of the axis tick labels were imported inappropriately (like [80] [90] were imported as [8] [0 90]) so I couldn't scale them properly. It seems that there is no straightforward way to adjust figures and I have to do it manually with a lot of imprecise mess. Nov 28, 2021 at 10:35
  • 1
    @Reza I suggest asking at another venue here at SE or elsewhere for help with those software programs specifically; the details are off topic at Academia.SE but there are ways to do this without a imprecise mess. Yes, some manual intervention will be necessary, though, as there is no function yet where you can just say "make me a figure" and it works. See mathworks.com/help/matlab/creating_plots/… perhaps to get started with Matlab.
    – Bryan Krause
    Nov 28, 2021 at 14:28
  • 1
    Just to echo what that. It IS possible to layout figures with matplotlib to any criteria you want. This isn't really the site to get into the technical details out how to do it. As you say there might not be and easy way to do it, but there is a way. Personally I make indevidual panels via code at either 1.5"x1.5" 2"x2", 3.5"x3.5" (2 columns) or 7x 7 (full width) and compose them into multipanel plots using inkscape or illustrator. Nov 28, 2021 at 16:34
  • 1
    I think you guys think I'm new to these softwares and I want a one button solution, nope! My intention for asking this question was not to get technical details. I just wanted to know what approaches people take to adjust their figures for a paper (adjusting before vs. after plotting, using default aspect ratio or not and whether they crop the margins). As a matter of fact I already asked this in Matlab community and they confirmed that this is indeed the limitation of Matlab. Nov 28, 2021 at 22:20
  • 1
    @RezaYahyaei Except that is wrong, and both Matlab and Python have settings to let you set the dimensions of figures in printed size, as well as changing margins. So, as I said in my answer, your options are to use those features or to just use parts of the exported figures and change things up in a separate software program.
    – Bryan Krause
    Nov 28, 2021 at 22:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .