MATLAB Answers

Matt
0

How do I prevent LineWidth property from affecting line start and end point on plot?

Asked by Matt
on 12 Nov 2014
Latest activity Commented on by Matt
on 7 Apr 2015
Using R2014b, when plotting a line with a large LineWidth, the data, as visualized in a figure, appears to extend beyond its true value. It appears that the LineWidth is being added to the front and back end of the line segment in addition to just affecting its width.
In R2014b,
plot([0 1],[1 1],'LineWidth',10)
appears to extend below 0 and beyond 1. http://imgur.com/YvAyiPX
In previous versions, the LineWidth did not affect the apparent start/end points of a line, and the above example would start and end (visually) at 0 and 1. Is there a way to ensure this for the R2014b graphics system?

  3 Comments

Has this issue been fixed in any way for R2015a?
The issue is still present in R2015a.
In the image linked, all lines are drawn on the interval [0 1], with the y-axis also being the LineWidth setting, but you can see they visually extend beyond, being more pronounced with greater LineWidth. (Image generated from R2015a, occurs with renderer = 'opengl' or 'painters'.)
Purely on accident I discovered a workaround. The line endings stop at the expected location if I switch to using the OpenGL software renderer, opengl('software') .
Just for reference, the hardware info, opengl('info'), where I experience the extended lines is as follows:
Version: '4.3.0'
Vendor: 'NVIDIA Corporation'
Renderer: 'NVS 5200M/PCIe/SSE2'
MaxTextureSize: 16384
Visual: 'Visual 0x07, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware acceler...'
Software: 'false'
SupportsGraphicsSmoothing: 1
SupportsDepthPeelTransparency: 1
SupportsAlignVertexCenters: 1
Extensions: {271x1 cell}
MaxFrameBufferSize: 16384
I also see it on my desktop with the Intel driver:
Version: '4.2.0 - Build 10.18.10.3412'
Vendor: 'Intel'
Renderer: 'Intel(R) HD Graphics 4600'
MaxTextureSize: 16384
Visual: 'Visual 0x07, (RGBA 32 bits (8 8 8 8), Z depth 16 bits, Hardware accelerati...'
Software: 'false'
SupportsGraphicsSmoothing: 1
SupportsDepthPeelTransparency: 1
SupportsAlignVertexCenters: 1
Extensions: {184x1 cell}
MaxFrameBufferSize: 16384
I have not tried playing around with other drivers and the like to see if may fix the issue.

Sign in to comment.

2 Answers

Answer by Doug Hull on 12 Nov 2014

There is not currently a way to turn of the endcaps on the lines.
Maybe you could use less wide lines, or put markers over the data points?

  0 Comments

Sign in to comment.


Answer by Matt
on 2 Dec 2014

Just to follow up on my own question, it appears to be a bug in the new graphics engine, so I will stick to R2014a and hope that they fix this in R2015a. I received the following response from the MathWorks Technical Support Department on 11/24:
-------------
Thank you for sending all of your reproduction information. I was able to reproduce the behavior you were experiencing and confirmed with the graphics development team that this is a known issue in R2014b that they are actively investigating.
In R2014b, there is no known workaround. The best recommendation I can offer is to plot markers at the endpoints of the lines by setting the 'Marker' property in the 'plot' call so that there will be some visual indication of the correct length.
I apologize for the inconvenience this issue is causing as well the extended amount of time it took to reproduce the issue and get back to you with a conclusive answer. If you have any further questions, please let me know and I will be happy to assist you.

  0 Comments

Sign in to comment.