Plots are shown as upper left cropped on OSX in 2015b

When plotting on my retina macbook pro connected to a non-retina external display, figures are always shown as a cropped upper left of each figure. I am guessing that this has something to do with the HighDPI/"LowDPI" modes that OSX presents to applications, but between this and the Java bugs and what not in later Matlab for OSX revisions, I am questioning myself: does mathworks test MATLAB for mac prior to releases? If so, do their setups deviate a lot from mine, or are they happy to ship products that are in such a sorry shape?
Being able to do a figure(); plot(1:10,1:10) ought to be one of the first things a QA person or automated test would check on any supported platform?
Sorry about the rant.

11 Comments

You didn't know that Mathworks has a Senior Vice President For Making Mac Users Unhappy, with an elite pan-organizational team with 719 reports, all devoted to laying traps for Mac users? It is an immensely profitable venture, in partnership with Linus himself!

I agree, this should have been something flagged in testing. I didn't know that I should've kept 2015a installed just so I could plot.
Sorry for the trouble you're seeing. Please send details to MathWorks support. In this case, I think the relevant information is what you are doing with your external display. Are you mirroring the displays? When I use a second monitor, I've been not mirroring them, and I've not had this problem. But when I turn on mirroring, I do see it. If you are not mirroring, but just replacing one monitor for the other or some other thing, please send the details.
andy
No external monitor. Fresh install running on a rMBP. Just now, after having gone back to 2015a, and restarting 2015b, the plots are showing correctly. So it may be an intermittent error.
I have been seeing this problem, without mirroring. I have seen figures being both "1/4 the size they should be" and "4 times bigger than they should be".
I have not tried to fully diagnose this, but I believe and important variable is whether MATLAB is running already when the external display is connected/disconnected. The problem seems to come when you start MATLAB, then connected/disconnect the display.
Andy or Adam, have you submitted a bug report that I can watch?
Cyclist, I have not seen what you describe. Please contact support. To be clear, I am from MathWorks. Not the VP mentioned above, but one of the 719. :) I can easily reproduce the first report by turning on mirroring, but I did not see anything unusual by plugging in or unplugging a second display to a MacBook Pro.
While I can easily create an internal bug report about this, I'd much prefer a customer-oriented one to be created with your detailed information, through support. That helps me make sure we address your particular symptoms. Thanks.
andy
Knut
Knut on 21 Sep 2015
Edited: Knut on 21 Sep 2015
I am using 2 external displays (a 1080p 24" and 2.5k 27") connected using HDMI and "Thunderbolt". The internal display is a 15" "retina" display. The displays are setup as one large desktop (no mirroring). I am running OSX 10.10.5.
When doing things as I would normally do after boot, my plots appear to be squashed into the upper left corner no matter what display matlab is running on, and no matter where I put the figure prior to plotting.
By disconnecting all external displays, restarting MATLAB, reconnecting all displays, plots are at their usual size. I do notice that the non-retina plots are heavily aliased (more so than the pixel density would suggest) if I do the plot() call while the figure resides on my Retina screen, then move the figure to the non-retina screen, while the retina plots are nice and smooth, and the plots originating on my non-retina screen are also smoother. (see attached image straight from "File->Save As->*.png")
Notice that some tick markers are totally gone, indicating that crude pixel dropping is used instead of proper image scaling.
Thank you, Knut, for the details. Yes, I agree the image is being subsampled. We're not subsampling it down, but we are drawing as if it were on Retina when it is not, and the display of the image does that.
I've spent more time with the problem, and at this time I can offer two workarounds.
1) For the case where you get a quarter image filling the figure, or the whole image filling a quarter of the figure, I suggest starting MATLAB after the monitors are set up. I see the above when Mirroring is turned on and I plug in or unplug a second monitor while MATLAB is running, and then make a new figure with graphics.
2) For Knut's case above, you'll need to create the figure on the monitor on which you want to look at it. Drag a figure to where you want it, save its Position property, and use that when you create the next figure. You could also change the renderer to 'painters' and then back to 'opengl':
set(gcf, 'Renderer', 'painters');
set(gcf, 'Renderer', 'opengl');
I will be investigating what can be done about these issues. Again, I really appreciate the details.
andy
I'd like you to be aware of this Bug Report, which has a workaround patch for Knut's second problem (the poor sampling). https://www.mathworks.com/support/bugreports/1252361
You will have to login to access this, but an account is free.
Unfortunately, the original problem reported above, where you see a quarter of the image, is not addressed. If you start MATLAB after you have set up the monitors, I think it will work for you.
I hope this helps.
andy
I am seeing a related problem to Knut's, on both R2015b and the pre-release of R2016a (I had hoped it had been fixed). I am running OSX 10.11.2 (El Capitan) on a MacBook Pro and get the issue with and without the external monitor attached. The behavior is that when MATLAB is started, the plots appear normal but after a while, they appear cropped at the upper right (i.e. only 1/4 of the plot is shown, see below)
If I re-size the figure, I temporarily see the full figure and then it reverts back to the cropped version. The only way to reliably fix it is to re-start MATLAB. Because of this issue, I am unable to use R2015b or R2016a.
I am also experiencing this issue. I also have times when the fonts in the plot become oversized.
I am running Matlab 2016b on OSX 10.12.13
I have found that I just have to restart Matlab to get it working correctly again.

Sign in to comment.

Answers (0)

Categories

Find more on Graphics Objects in Help Center and File Exchange

Products

Tags

Asked:

on 10 Sep 2015

Commented:

on 15 Feb 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!