divide matlab line plot in two lines of the same colour
조회 수: 3 (최근 30일)
이전 댓글 표시
Hi I am trying to plot a graph in the code below. Does anyone know how to split the "azimuth_summer_solstice" and "altitude_summer_solstice" line. As the data is, there are two curves on either side of the graph which are connected. I want to remove this connecting line and show the winter_solstice as two separate curves
My code is
if Y = xlsread('hanimaadhoo_sun_path.xls','hanimaadhoo'); %
azimuth_march_equinox = Y(1:17,1);
altitude_march_equinox = Y(1:17,2);
azimuth_september_equinox = Y(1:17,3);
altitude_september_equinox =Y(1:17,4);
azimuth_winter_solstice = Y(1:17,5);
altitude_winter_solstice = Y(1:17,6);
azimuth_summer_solstice = Y(1:17,7);
altitude_summer_solstice = Y(1:17,8);
The azimuth_summer_solstice is
[60.6 64.9 67.5 68.7 68.7 67.0 62.1 49.3 11.6 319.2 298.1 290.6 287.7 287.0 287.6
289.5 292.9]
The altitude_summer_solstice is
[ -28.20 -14.6 -0.5 13.2 27.2 41.22 54.9 67.6 76.1 72.5 60.9 47.60 33.7 19.6 5.6 -8.3 -22.08]
figure;
plot(azimuth_summer_solstice,altitude_summer_solstice,azimuth_winter_solstice,altitude_winter_solstice,...
azimuth_march_equinox,altitude_march_equinox,azimuth_september_equinox,altitude_september_equinox,'LineWidth',2);
댓글 수: 2
Wayne King
2012년 9월 22일
Since this matrix is only 17x8, or at least the part you're using here, can you just post the matrix. It would be really helpful in this case.
답변 (2개)
Wayne King
2012년 9월 23일
편집: Wayne King
2012년 9월 23일
Do you need to plot these with a line? Typically when you plot data like this you would just use a scatter plot
plot(azimuth_summer_solstice,altitude_summer_solstice,'b^',...
'markerfacecolor',[0 0 1]);
Or maybe a stem plot:
h = stem(azimuth_summer_solstice,altitude_summer_solstice,...
'fill','--');
set(get(h,'BaseLine'),'LineStyle',':')
set(h,'MarkerFaceColor','red')
Wayne King
2012년 9월 23일
You can easily break up the data where there is clear jump in the azimuth: 68.7000 to 287.0000
To do this you sort the azimuth data, but keep the indices from the sort. You then sort the altitude data using those indices so you keep the correspondence between the two variables.
[az_ss,I] = sort(azimuth_summer_solstice);
al_ss = altitude_summer_solstice(I);
plot(az_ss(1:9),al_ss(1:9),'b');
axis([0 320 -30 70]);
hold on;
plot(az_ss(10:end),al_ss(10:end),'b');
Without a clearer picture of the rest of the data or the ultimate goal, it's hard to be more of a help than that.
참고 항목
카테고리
Help Center 및 File Exchange에서 Discrete Data Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!