필터 지우기
필터 지우기

Write xtick in two lines and write values of plot in figure

조회 수: 28 (최근 30일)
Dhruba jyoti Bora
Dhruba jyoti Bora 2020년 4월 9일
편집: Mehmed Saad 2020년 4월 9일
I am unable to remove the overlaping in xticks. For longer xticks, how to write it in two lines. In addition how to write the values of plot in the figure from the data. I searched throughout to failed to find a convincing answer
MAPE =[0.612 0.530 0.667 0.581 0.530 0.483
0.560 0.348 0.586 0.505 0.365 0.309
0.501 0.320 0.564 0.507 0.311 0.225
0.505 0.244 0.515 0.519 0.452 0.250
0.508 0.285 0.547 0.415 0.388 0.250
0.495 0.342 0.554 0.506 0.374 0.268
0.477 0.170 0.494 0.510 0.317 0.283
0.495 0.210 0.471 0.417 0.254 0.134
0.462 0.195 0.426 0.492 0.216 0.257
0.506 0.165 0.533 0.481 0.492 0.220]
plot(MAPE(1,:),'linewidth',2);
hold on;
plot(MAPE(5,:),'linewidth',2);
hold on;
plot(MAPE(6,:),'linewidth',2);
hold on;
plot(MAPE(8,:),'linewidth',2);
hold on;
title('MAPE of different models for various parts ');
legend('Face','Back','Ventral','Palm');
xticks([1 2 3 4 5 6]);
xticklabels({'Montague Model','CPE Model','Tregear Level 1','Tregear Level 2','Tregear Level 3','Proposed Model'});
xlabel('Models');
ylabel('MAPE');
legend('boxoff');

채택된 답변

Mehmed Saad
Mehmed Saad 2020년 4월 9일
편집: Mehmed Saad 2020년 4월 9일
1. xtick issue
I tried to move xtick to next line but cant, so instead of xtick i used text for that purpose
MAPE =[0.612 0.530 0.667 0.581 0.530 0.483
0.560 0.348 0.586 0.505 0.365 0.309
0.501 0.320 0.564 0.507 0.311 0.225
0.505 0.244 0.515 0.519 0.452 0.250
0.508 0.285 0.547 0.415 0.388 0.250
0.495 0.342 0.554 0.506 0.374 0.268
0.477 0.170 0.494 0.510 0.317 0.283
0.495 0.210 0.471 0.417 0.254 0.134
0.462 0.195 0.426 0.492 0.216 0.257
0.506 0.165 0.533 0.481 0.492 0.220]
% a = figure,
plot(MAPE(1,:),'linewidth',2);
hold on;
plot(MAPE(5,:),'linewidth',2);
hold on;
plot(MAPE(6,:),'linewidth',2);
hold on;
plot(MAPE(8,:),'linewidth',2);
hold on;
% a.Children.TickLabelInterpreter = 'tex';
xticks([1 2 3 4 5 6]);
title('MAPE of different models for various parts ');
legend('Face','Back','Ventral','Palm');
xticklabels({'.','.','.','.','.','.'})
txt= {{'Montague';'Model'},{'CPE';'Model'},{'Tregear';'Level 1'},{'Tregear';'Level 2'},{'Tregear';'Level 3'},{'Proposed';'Model'}};
x=text(1:6,(min(ylim)-0.03)*ones(1,6),txt,'HorizontalAlignment','center');
xlabel('Models');
ylabel('MAPE');
legend('boxoff');
2. Writing Values
Use text to write values on position x,y and to convert data to string, use num2str and to seperate data use strip
MAPE =[0.612 0.530 0.667 0.581 0.530 0.483
0.560 0.348 0.586 0.505 0.365 0.309
0.501 0.320 0.564 0.507 0.311 0.225
0.505 0.244 0.515 0.519 0.452 0.250
0.508 0.285 0.547 0.415 0.388 0.250
0.495 0.342 0.554 0.506 0.374 0.268
0.477 0.170 0.494 0.510 0.317 0.283
0.495 0.210 0.471 0.417 0.254 0.134
0.462 0.195 0.426 0.492 0.216 0.257
0.506 0.165 0.533 0.481 0.492 0.220]
% a = figure,
plot(MAPE(1,:),'linewidth',2);
text(1:6,MAPE(1,:),split(num2str(MAPE(1,:)))) % This is changed
hold on;
plot(MAPE(5,:),'linewidth',2);
text(1:6,MAPE(5,:),split(num2str(MAPE(1,:)))) % This is changed
hold on;
plot(MAPE(6,:),'linewidth',2);
text(1:6,MAPE(6,:),split(num2str(MAPE(1,:)))) % This is changed
hold on;
plot(MAPE(8,:),'linewidth',2);
text(1:6,MAPE(8,:),split(num2str(MAPE(1,:)))) % This is changed
hold on;
% a.Children.TickLabelInterpreter = 'tex';
xticks([1 2 3 4 5 6]);
title('MAPE of different models for various parts ');
legend('Face','Back','Ventral','Palm');
xticklabels({'.','.','.','.','.','.'})
txt= {{'Montague';'Model'},{'CPE';'Model'},{'Tregear';'Level 1'},{'Tregear';'Level 2'},{'Tregear';'Level 3'},{'Proposed';'Model'}};
x=text(1:6,(min(ylim)-0.03)*ones(1,6),txt,'HorizontalAlignment','center');
xlabel('Models');
ylabel('MAPE');
legend('boxoff');

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Annotations에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by