Dear commmunity,
I have two computers with the same Matlab version(R2016b).
When I run
x=0:1:100
y=x^2
plot(x,y,'.')
in one of the two I'm not able to see the plot. The other one, instead, is able to represent the plot, so I can see all the points. Why?

댓글 수: 2

Jan
Jan 2017년 10월 3일
Please explain any details: Is the monitor turn on? Is the figure created on a 2nd monitor? Does the rest of Matlab work like expected? "I do not see anything" does not allow to understand, what happens.
Giulio Caforio
Giulio Caforio 2017년 10월 3일
Sorry Jan for my inaccuracy. I mean: I run the the mini program that I wrote before but the graph is completely white. If I change (for example from '.' to '*'), I will see the graph with the asterisks, but I do not see anything with the points

댓글을 달려면 로그인하십시오.

 채택된 답변

OCDER
OCDER 2017년 10월 3일
편집: OCDER 2017년 10월 3일

3 개 추천

NEW ANSWER
Somehow, setting to opengl renderer after Matlab starts causes an issue. I could replicate the bug if I do opengl software first, and then trying to plot. Switching the renderer to painters restores the dots.:
%Replicating the error like this: (Open MATLAB from start)
opengl software
Gx = figure;
x=0:1:100;
y=x.^2;
plot(x,y,'.') %empty, no dots are showing
set(Gx, 'renderer', 'painters'); %dots reappear
Looks like setting renderer to opengl could cause that issue. To fix, you could just set default renderer to painters via:
set(0, 'defaultFigureRenderer', 'painters')
OLD ANSWER (for the figure not showing at all)
My attempt to answer this vague problem is - one computer has set the default figure visibility to off, hence it plots but does not show anything.
To check this:
get(0, 'DefaultFigureVisible') %should be 'on'. If not, fix it.
To fix this:
set(0, 'DefaultFigureVisible', 'on')
close all %to make sure any invisible plots are closed before trying to plot again.

댓글 수: 17

Giulio Caforio
Giulio Caforio 2017년 10월 3일
Hi Donald, thank you for your answer. I have just checked what you said, and the variable 'ans' is 'on', so I closed Matlab and I re-opened it. I run the the mini program that I wrote before but the graph is completely white. If I change (for example from '.' to '*'), I will see the graph with the asterisks, but I do not see anything with the points
OCDER
OCDER 2017년 10월 3일
So does the plot show now, at least with '*' ? I guess I misread your question (hence details would be nice!). When you said you "did not see anything", it sounds like you "do not see any figure of a plot". This is a different issue where you cannot see the dots on the plot. Send us a screenshot, the exact code you used, and we might be able to figure it out with enough information.
Giulio Caforio
Giulio Caforio 2017년 10월 3일
편집: Walter Roberson 2017년 10월 3일
Certainly:
the code is:
x=0:1:100;
y=x.^2;
plot(x,y,'.')
Giulio Caforio
Giulio Caforio 2017년 10월 3일
Try giving the command
opengl software
and then plotting.
Also, try
h = plot(x,y,'.');
get(h, 'MarkerSize')
get(h, 'MarkerColor')
Giulio Caforio
Giulio Caforio 2017년 10월 3일
Hi Walter, thank you for your answer: I tried, nothing.
OCDER
OCDER 2017년 10월 3일
Can you show us the image with the '*' option? Just trying to see if that's small and what color it defaults to.
Giulio Caforio
Giulio Caforio 2017년 10월 3일
OCDER
OCDER 2017년 10월 3일
편집: OCDER 2017년 10월 3일
Interesting... It does everything it should, except for the dots. This could be a bug, some kind of issue with the renderer and video card. Last effort, try:
Gx = figure;
set(Gx, 'Renderer', 'painters')
x=0:1:100;
y=x.^2;
plot(x,y,'.')
If this doesn't work, might have to ask MathWorks directly via the bug reporting system.
What was the result of
get(h, 'MarkerSize')
get(h, 'MarkerColor')
Whoa, I just replicated that bug.
%Replicating the error like this: (Open MATLAB from start)
opengl software
Gx = figure;
x=0:1:100;
y=x.^2;
plot(x,y,'.') %empty, no dots are showing
set(Gx, 'renderer', 'painters'); %dots reappear
Looks like setting renderer to opengl could cause that issue. To fix, you could just set default renderer to painters via:
set(0, 'defaultFigureRenderer', 'painters')
Walter Roberson
Walter Roberson 2017년 10월 3일
This does not appear to happen on OS-X for R2017b -- which does not support software opengl.
Giulio Caforio
Giulio Caforio 2017년 10월 4일
Thank you Donald. I do not understand very well how you solved the problem, but if I write:
Gx = figure;
x=0:1:100;
y=x.^2;
plot(x,y,'.')
set(Gx, 'renderer', 'painters');
I will see all the points.So, Must I write always this function set(Gx, 'renderer', 'painters') to see the points? Does a final function exist to set definitively this option?
OCDER
OCDER 2017년 10월 4일
편집: OCDER 2017년 10월 4일
I'm not quite sure how to permanently set the renderer to 'painters', but you could do
set(0, 'defaultFigureRenderer', 'painters')
once per each new session of matlab. That way, any new plots you draw will automatically use the painters renderer.
Even better, if you open MATLAB via a shortcut icon in your desktop, reset the shortcut path to something like this:
some_path_to_matlab/matlab.exe -r "set(0, 'DefaultFigureRenderer', 'painters')"
This way, everytime you open MATLAB, it will apply the default renderer for you without you having to worry about it.
shahzad muhammad
shahzad muhammad 2017년 10월 22일
almost, same problem with me, using MATLAB 2015a. I try to fixed it by above discussion but failed. figure is shown but plot line is not shown. this is specially for plot command rest of all plot types like area, histogram, etc. working good. please, help me.
OCDER
OCDER 2017년 10월 23일
편집: OCDER 2017년 10월 23일
Hi Shahzad, this might be a slightly different issue.
Instead of using painters, try opengl. If that fails, try to plot the simple
plot(1:10, 1:10, 'r') %Does this work ?
set(gcf, 'renderer', 'opengl') %Does it work now?
If this doesn't fix it, try posting this as a new question so you can get answers:
Question: Why can't I see plot lines, but other plots like histogram works?
In your description, something like:
"I'm trying to plot lines, but the lines won't show. I've tried the Q&A section described at https://www.mathworks.com/matlabcentral/answers/359509-problems-with-the-function-plot, but changing the renderer to Painters failed. Here's the code I tried:
(Use the {} Code button to make the code appear like this:)
%Plot code
x = 1:10;
y = x.^2;
plot(x, y, 'r') %NO LINES!!!
Kazi Hafizur Rahman
Kazi Hafizur Rahman 2020년 10월 5일
thanks a lot,it just solved my problem I was stuck for almost two days

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Graphics Performance에 대해 자세히 알아보기

제품

태그

질문:

2017년 10월 3일

편집:

2022년 10월 17일

Community Treasure Hunt

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

Start Hunting!

Translated by