Try this slight edit of your code:
orbit=zeros(1,300);
j=0;
% parameter range
rv=2.8:0.001:4;
for k = 1:numel(rv)
r = rv(k);
j=j+1;
% random nitiation of iteration
xn1=rand(1);
for i=1:600
% calculate logistic map
xn=xn1;
xn1=r*xn*(1-xn);
% wait for transients
if(i>300)
% store the orbit points
orbit(i-300,k)=xn1;
end
end
% plot(r,orbit,'.');
if(j==1)
axis([2.8 4 0 1]);
hold;
end
end
figure
plot(rv, orbit, '.');
axis([2.8 4 0 1]);