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 Kommentare

Jan
Jan am 3 Okt. 2017
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 am 3 Okt. 2017
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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

OCDER
OCDER am 3 Okt. 2017
Bearbeitet: OCDER am 3 Okt. 2017

3 Stimmen

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 Kommentare

Giulio Caforio
Giulio Caforio am 3 Okt. 2017
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 am 3 Okt. 2017
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 am 3 Okt. 2017
Bearbeitet: Walter Roberson am 3 Okt. 2017
Certainly:
the code is:
x=0:1:100;
y=x.^2;
plot(x,y,'.')
Giulio Caforio
Giulio Caforio am 3 Okt. 2017
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 am 3 Okt. 2017
Hi Walter, thank you for your answer: I tried, nothing.
OCDER
OCDER am 3 Okt. 2017
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 am 3 Okt. 2017
OCDER
OCDER am 3 Okt. 2017
Bearbeitet: OCDER am 3 Okt. 2017
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')
OCDER
OCDER am 3 Okt. 2017
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 am 3 Okt. 2017
This does not appear to happen on OS-X for R2017b -- which does not support software opengl.
Giulio Caforio
Giulio Caforio am 4 Okt. 2017
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 am 4 Okt. 2017
Bearbeitet: OCDER am 4 Okt. 2017
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 am 22 Okt. 2017
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 am 23 Okt. 2017
Bearbeitet: OCDER am 23 Okt. 2017
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 am 5 Okt. 2020
thanks a lot,it just solved my problem I was stuck for almost two days

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Performance finden Sie in Hilfe-Center und File Exchange

Produkte

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by