My plot is not showing a line? Why?
37 次查看(过去 30 天)
显示 更早的评论
%Plot of net energy,attractive energy and repulsive energy of a two
%isolated ions seperated by a distance
% r is interatomic distance between the ions
clc; clear;
A=1.436; B=7.32*10^-6; n=8;
r = 0:0.1*10^-9:1*10^-9;
Net_Energy = zeros(length(r),1);
Attractive_Energy = zeros(length(r),1);
Repulsive_Energy = zeros(length(r),1);
for i=1:length(r)
Net_Energy(i) = -A/r(i) + B/r(i)^n;
Attractive_Energy(i) = -A/r(i);
Repulsive_Energy(i) = B/(r(i)^n);
end
for i=1:length(r)
plot(r(i),Net_Energy(i),'g')
hold on
plot(r(i),Attractive_Energy(i),'g')
hold on
plot(r(i)*10^9,Repulsive_Energy(i),'g')
hold on
end
0 个评论
回答(3 个)
Eddie
2020-1-26
Replace this
for i=1:length(r)
plot(r(i)*10^9,Net_Energy(i),'g')
hold on
end
with
f=figure; ax=axes(f);
plot(ax,r*10^9,Net_Energy,'g');
If you want to plot a line, the data need to be a single input to plot function instead of using a for loop, which would only plot your data points as individual points.
2 个评论
Eddie
2020-1-26
Remove the for loop, use this instead
plot(r,Net_Energy,'g')
hold on %only need to do it once
plot(r,Attractive_Energy,'g')
plot(r*10^9,Repulsive_Energy,'g')
However, the last plot (Repulsive_Energy) won't appear with the other plots in the same region (since ther previous two plots are in region r, while the last one is in region r*10^9. I suspect this is what you want -
plot(r*10^9,Net_Energy,'g')
hold on %only need to do it once
plot(r*10^9,Attractive_Energy,'g')
plot(r*10^9,Repulsive_Energy,'g')
Frederick Anokye
2020-1-26
2 个评论
Walter Roberson
2020-1-26
use semilogy() instead of plot() to make the lines curvy.
To label the lines, use legend()
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Lighting, Transparency, and Shading 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!