I need to plot two x-axes with the same y-axis.
The first are the dates of a Satellite mission, the second one represents the distance.
I made the dates already as a string with the function "dates". So i just need to know what i have to add to:
h = figure
plot (dates,R_plot(:,1),'-','MarkerSize',6,'Color',colorset(5))
ylim([0 10000])
title ('Data rate over distance');
xlabel ('Distances in AU');
ylabel ('consequential data rate in bit/s');
I've been googling already the function "line" to just create another line, but it wasn't working out with a datestring for me.
I use Matlab2016b and i am quite new.

댓글 수: 1

I was searching for the same exact thing.
It is too bad there are no solutions listed here. :(

댓글을 달려면 로그인하십시오.

 채택된 답변

dpb
dpb 2017년 7월 15일
편집: dpb 2022년 12월 27일

0 개 추천

See <graph-with-multiple-x-axes> for example. They've really made it hard to find the link; I never did find it in current doc; had to look it up in R2014b where I knew it existed to find the phrase and then do a text search... :( And, since they built yyaxis in lieu of old plotyy, why wouldn't they have gone ahead and introduced xxaxis as well? Makes no sense what TMW does/doesn't do sometimes...
"made dates already as a string with the function "dates" " I don't find any function dates; do you mean datestr, perhaps? If so, you want to plot using a datetime value and format it as desired, not a string.

댓글 수: 3

[Moved Nikolai's Answer to Comment...dpb]
You are right! I was using "datetime". I already found the same page you have been sending. But i still don't know how to change the second x-Axis to a datetime Value.
My Solution right now is to first plot the dates and afterwards the distances:
h = figure
plot (dates,R_plot(:,1),'-','MarkerSize',6,'Color',colorset(5))
ylim([0 10000])
xlabel ('Distances in AU');
ylabel ('consequential data rate in bit/s');
ax1 = gca;
ax1_pos = ax1.Position;
ax2 = axes('Position',ax1_pos,...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none');
%Eliminating second y-Axis
set(gca,'ytick',[])
% With AU_ent as the distances in AU
x2 = AU_ent;
%Random value
y2 = 0;
line(x2,y2,'Parent',ax2,'Color','k')
Even i did not find the perfect solution, Many thanks for your help!
I'm still not positive what it is you're wanting here, Nikolai (which is why I didn't try specific code first go 'round; wasn't sure what code to give :) ).
To set the second axis in time units you need to set the x-axis limits in terms of time values and plot the data in those units as well. Can you attach some sample of what the resulting graph you're after would look like; even a sketch by hand would suffice, probably.
BTW, if you want two axes to be the same and stay in synch with each other, look at
doc linkaxes
for way to get that behavior.
"what if I have data points and I don't want to have a line. Plot does not seem to work" -- Maxime Penning -- Answer moved to comment by dpb
Use the optional syntax to specify linestyle without a line type.
plot(x,y,'g.')
plots with green dots. doc plot for the details in the fine print on arguments.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Time Series Objects에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

질문:

2017년 7월 14일

편집:

dpb
2022년 12월 27일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by