Problems with the function plot
現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
古いコメントを表示
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
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
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
採用された回答
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
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
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
2017 年 10 月 3 日
編集済み: Walter Roberson
2017 年 10 月 3 日
Certainly:
the code is:
x=0:1:100;
y=x.^2;
plot(x,y,'.')
Giulio Caforio
2017 年 10 月 3 日

Walter Roberson
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
2017 年 10 月 3 日
Hi Walter, thank you for your answer: I tried, nothing.
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
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.
Walter Roberson
2017 年 10 月 3 日
What was the result of
get(h, 'MarkerSize')
get(h, 'MarkerColor')
OCDER
2017 年 10 月 3 日
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
2017 年 10 月 3 日
This does not appear to happen on OS-X for R2017b -- which does not support software opengl.
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?
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
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.
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
2020 年 10 月 5 日
thanks a lot,it just solved my problem I was stuck for almost two days
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Graphics Performance についてさらに検索
製品
タグ
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
