why is my plot not showing anything
Show older comments
clc
k = 8.9870e+009;
q1 = .000000024820;
q2 = .000005200901;
for r = [.10,.15,.20,.25,.30,.40];
f = (k*q1*q2)/r.^2
end
plot(r,f)
hold on
axis([0 .5 0 .2])
i want to plot f vs r
4 Comments
Tanmay Varshney
on 20 Aug 2022
Edited: Walter Roberson
on 1 Mar 2025
//Please tell why my graph is not plotting//
v0 = 6.2;
g = 9.81;
theta = 45*(pi/180);
y0 = 1.5;
Vx = v0* cos(theta);
t = linspace(0,2);
x = Vx * t ;
y = y0 + v0 * t * sin(theta) - 0.5 * g * t.^2;
for i=1:size(x,2)
if (i>1 && y(i)<=0)
break;
end
plot(x(i),y(i))
xlabel ('Horizontal Distance(m)')
ylabel ('Vertical Distance(m)')
hold on;
pause(0.05);
end
Walter Roberson
on 20 Aug 2022
plot() does not add lines to points that have already been drawn in previous calls. plot() only draws lines when during a single call there are two or more finite coordinates in a row.
Your plot() call is only drawing one point at a time, not two or more, so it is not going to draw lines.
- you can record all of the output and plot after the calculation loop. This is recommended
- you can leave the plot call but add a marker such as '+' so that it will draw each point
- instead of plot() you could switch to animatedline() and addpoints()
Christopher
on 1 Mar 2025
I am having a similar problem.
I have two defined vectors, and when I go to plot them, it shows me a window with a blank plot.
code (simplified because there is a lot of other code)
query=input("question")
mat1=(1:500);
mat2=linspace(0,query,500);
plot(mat2,mat1,"-",color='blue')
Walter Roberson
on 1 Mar 2025
That code looks okay, provided that a finite value is entered for "query" and the finite value exceeds 500*eps(0)
Is it possible that you have a third-party plot.m or that you have assigned to a variable named plot ?
Accepted Answer
More Answers (2)
Thomas
on 15 May 2012
try
k = 8.9870e+009;
q1 = .000000024820;
q2 = .000005200901;
r = [.10,.15,.20,.25,.30,.40];
for count=1:numel(r)
f(count) = (k*q1*q2)/r(count).^2 % save f as array
end
plot(r,f)
hold on
axis([0 .5 0 .2])
You were not saving f as array and hence were only plotting one f and one r pair..
You can avoid the loop totally as well using:
f = (k*q1*q2)/r.^2;
plot(r,f)
1 Comment
lowcalorie
on 15 May 2012
rajdeep singh
on 9 Feb 2020
0 votes
What is r is a function of random numbers? Like data points
1 Comment
Walter Roberson
on 9 Feb 2020
Oleg's and Thomas's solutions do not care how you create r and do not care whether r is sorted.
The one thing to watch out for if r is not sorted is that because by default plot() connects points that are adjacent in data order, you would get a lot of lines back and forth across the screen. sorting on r prevents that problem.
for idx=1:10
r(idx) = rand() ;
f(idx) = (k*q1*q2)/r(idx).^2;
end
[sr, sidx] = sort(r) ;
sf = f(sidx);
plot(sr, sf)
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!