百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

实例讲解MATLAB绘图坐标轴标签旋转

moboyou 2025-04-28 22:26 43 浏览

在我们进行绘图时,需要在图片上添加上做标轴的标签,但是当数据量比较多时,例如一天24小时的数据,这时把每个小时显示在左边轴的标签上,文字内容放不下,因此需要将坐标轴标签旋转一定的角度,这样可以更好在图形上表现出我们想要呈现的效果。今天主要是以几个简单的实例介绍MATLAB绘图坐标轴标签旋转。


1.xtickangle函数

函数功能:旋转 x 轴刻度标签,此 MATLAB 函数 将当前坐标区的 x 轴刻度标签旋转到指定角度(以度为单位),其中 0 表示水平。指定正值表示逆时针旋转,负值表示顺时针旋转。

语法
xtickangle(angle)
xtickangle(ax,angle)
ang = xtickangle
ang = xtickangle(ax)
说明
xtickangle(angle) 
将当前坐标区的 x 轴刻度标签旋转到指定角度(以度为单位),
其中 0 表示水平。
指定正值表示逆时针旋转,负值表示顺时针旋转。
xtickangle(ax,angle) 
旋转 ax 指定的坐标区的刻度标签,而不是旋转当前坐标区的刻度标签。
ang = xtickangle 
以标量值形式返回当前坐标区的 x 轴刻度标签的旋转角度(以度为单位)。
正值表示逆时针旋转。负值表示顺时针旋转。
ang = xtickangle(ax) 使用 ax 指定的坐标区,而不是使用当前坐标区。

程序实例

clc;
clear all;
close all;
data1 = [-61.985731  0.09807398  98
-60.654782  0.118307152  85
-62.10265  0.12251611  82
-63.888355  0.104764369  92
-64.311429  0.026647907  107
-58.765987  0.037388049  119
-58.013333  0.03488062  127
-60.434386  0.030351077  128
-63.148462  0.035116094  120
-63.238462  0.039316079  106
-61.257429  0.043060216  89
-60.879329  0.047273744  74
-62.603173  0.052770037  68
-59.579087  0.039451698  74
-61.542441  0.057254602  90
-63.943248  0.062428356  114
-62.855078  0.041757097  139
-58.716246  0.082125854  162
-60.764546  0.044027447  179
-65.067856  0.085127171  187
-63.157738  0.106885576  184
-63.108333  0.099450438  171
-64.834721  0.088089775  151
-64.490828  0.086894242  126
];
data = [1:24];
figure;
subplot(3,1,1);
plot(data,data1(:,2));
xticks([1:24]);
xticklabels({'1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00',...
    '11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00','19:00','20:00',...
   '21:00','22:00','23:00','24:00'});
xlabel('time/h');
ylabel('tide/cm');
xtickangle(45); %x轴标签旋转45度
set(gca,'FontName','Times New Roman','FontSize',10.5);
subplot(3,1,2);
plot(data,data1(:,1));
xticks([1:24]);
xtickangle(45); %x轴标签旋转45度
xticklabels({'1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00',...
    '11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00','19:00','20:00',...
   '21:00','22:00','23:00','24:00'});
xlabel('time/h');
ylabel('SV/dB');
set(gca,'FontName','Times New Roman','FontSize',10.5);
subplot(3,1,3);
plot(data,data1(:,2));
xticks([1:24]);
xtickangle(45); %x轴标签旋转45度
xticklabels({'1:00','2:00','3:00','4:00','5:00','6:00','7:00','8:00','9:00','10:00',...
    '11:00','12:00','13:00','14:00','15:00','16:00','17:00','18:00','19:00','20:00',...
   '21:00','22:00','23:00','24:00'});


xlabel('time/h');
ylabel('Density/(ind/m^{3})');
set(gca,'FontName','Times New Roman','FontSize',10.5);
set(gcf,'unit','centimeters','position',[10 5 22 12])
set(gca,'XTickLabelRotation',46);

运行结果


2.ytickangle函数

功能:旋转 y 轴刻度标签
语法
ytickangle(angle)
ytickangle(ax,angle)
ang = ytickangle
ang = ytickangle(ax)
说明
ytickangle(angle) 将当前坐标区的 y 轴刻度标签旋转到指定角度
(以度为单位),其中 0 表示水平。指定正值表示逆时针旋转,
负值表示顺时针旋转。
ytickangle(ax,angle) 旋转 ax 指定的坐标区的刻度标签,
而不是旋转当前坐标区的刻度标签。
ang = ytickangle 以标量值形式返回当前坐标区的 y 轴刻度标签的
旋转角度(以度为单位)。正值表示逆时针旋转。负值表示顺时针旋转。
ang = ytickangle(ax) 使用 ax 指定的坐标区,而不是使用当前坐标区。

实例程序

clc;
clear all;
close all;
data = [0  585.76  298  585.76  298  585.76  298
0.1  557.6218608  302.8092487  556.1551935  301.2136497  556.1198666  300.4130501
0.2  531.1916909  307.0967308  529.6809085  304.0930011  529.5459545  302.5804936
0.3  507.677964  310.9198885  506.0065667  306.6733559  505.7213892  304.5277126
0.4  486.759645  314.3298342  484.8365359  308.9862838  484.3620808  306.277463
0.5  468.1510377  317.3720541  465.906398  311.0600217  465.2132941  307.8501496
0.6  451.5978946  320.0870271  448.9796538  312.9198246  448.046616  309.2640684
0.7  436.8739554  322.5107767  433.8447747  314.5882812  432.6572352  310.4751948
0.8  423.7778659  324.6753605  420.3125666  316.0855952  418.8615035  311.6795301
0.9  412.1304365  326.5176841  408.2138114  317.429837  406.4947493  312.708974
1  401.7722026  328.256087  397.397158  318.637169  395.4093162  313.635784
1.1  392.1284942  329.8840516  387.7272355  319.7220471  385.4728056  314.4705656
1.2  384.3712971  331.2675491  379.0829664  320.697401  376.5664992  315.2228282
1.3  377.0899475  332.5063927  371.3560572  321.574795  368.5839462  315.9010987
1.4  370.6171872  333.6165062  364.4496485  322.3645727  361.4296952  316.5130229
];
x = data(:,1);
y1 = data(:,2);
y2 = data(:,3);
y3 = data(:,4);
y4 = data(:,5);
y5 = data(:,6);
y6 = data(:,7);
c_map =  [0.00, 0.36, 0.67
          0.68, 0.42, 0.89
          0.44, 0.62, 0.98
          0.10, 0.67, 0.59
          0.99, 0.57, 0.59
          0.28, 0.55, 0.86
          0.96, 0.62, 0.24
          0.30, 0.90, 0.56
          0.12, 0.46, 0.71
          0.46, 0.63, 0.90
          0.96, 0.37, 0.40
          0.14, 0.76, 0.71
          0.99, 0.50, 0.02
          0.00, 0.57, 0.76
          0.35, 0.90, 0.89
          0.17, 0.62, 0.47
          0.21, 0.21, 0.67
          0.99, 0.49, 0.00
          0.98, 0.74, 0.44
          0.97, 0.60, 0.58
          0.18, 0.62, 0.17
          0.68, 0.87, 0.53
          0.12, 0.46, 0.70
          0.65, 0.79, 0.89
          0.95, 0.99, 0.69
          0.74, 0.92, 0.68
          0.37, 0.81, 0.72
          0.01, 0.72, 0.77];
figure;
plot(x,y1,'r-o','markerface','r');
hold on;
plot(x,y2,'g-^','markerface','g');
plot(x,y3,'-^','markerface',c_map(1,:),'Color',c_map(1,:));
plot(x,y4,'-<','markerface',c_map(2,:),'Color',c_map(2,:));
plot(x,y5,'->','markerface',c_map(3,:),'Color',c_map(3,:));
plot(x,y6,'-s','markerface','k','Color','k');
xlabel('m');
ylabel('T')
legend('Tf(400g/s)','Tw(400g/s)','Tf(600g/s)','Tw(600g/s)','Tf(800g/s)','Tw(800g/s)');
box off;
set(gca,'FontName','Times New Roman','FontSize',12);%修改字体为古罗马


angx = xtickangle %查询 x 轴刻度标签的当前角度
angy = ytickangle%查询 y轴刻度标签的当前角度
figure;
subplot(2,1,1);
plot(x,y1,'r-o','markerface','r');
hold on;
plot(x,y2,'g-^','markerface','g');
plot(x,y3,'-^','markerface',c_map(1,:),'Color',c_map(1,:));
plot(x,y4,'-<','markerface',c_map(2,:),'Color',c_map(2,:));
plot(x,y5,'->','markerface',c_map(3,:),'Color',c_map(3,:));
plot(x,y6,'-s','markerface','k','Color','k');
xlabel('m');
ylabel('T')
legend('Tf(400g/s)','Tw(400g/s)','Tf(600g/s)','Tw(600g/s)','Tf(800g/s)','Tw(800g/s)');
box off;
set(gca,'FontName','Times New Roman','FontSize',10);%修改字体为古罗马
subplot(2,1,2);
plot(x,y1,'r-o','markerface','r');
hold on;
plot(x,y2,'g-^','markerface','g');
plot(x,y3,'-^','markerface',c_map(1,:),'Color',c_map(1,:));
plot(x,y4,'-<','markerface',c_map(2,:),'Color',c_map(2,:));
plot(x,y5,'->','markerface',c_map(3,:),'Color',c_map(3,:));
plot(x,y6,'-s','markerface','k','Color','k');
xlabel('m');
ylabel('T')
legend('Tf(400g/s)','Tw(400g/s)','Tf(600g/s)','Tw(600g/s)','Tf(800g/s)','Tw(800g/s)');
box off;
set(gca,'FontName','Times New Roman','FontSize',10);%修改字体为古罗马
xtickangle(45);
ytickangle(45);

运行结果

angx =


     0




angy =


     0

3.ztickangle

函数功能:旋转 z 轴刻度标签
语法
ztickangle(angle)
ztickangle(ax,angle)
ang = ztickangle
ang = ztickangle(ax)
说明
ztickangle(angle) 将当前坐标区的 z 轴刻度标签旋转到指定角度
(以度为单位),其中 0 表示水平。指定正值表示逆时针旋转,
负值表示顺时针旋转。
ztickangle(ax,angle) 旋转 ax 指定的坐标区的刻度标签,
而不是旋转当前坐标区的刻度标签。
ang = ztickangle 以标量值形式返回当前坐标区的 z 轴刻度标签的
旋转角度(以度为单位)。正值表示逆时针旋转。负值表示顺时针旋转。
ang = ztickangle(ax) 使用 ax 指定的坐标区,而不是使用当前坐标区。

程序实例

clc;
clear all;
close all;
figure;
subplot(2,1,1)
[x,y,z] = peaks;
surf(x,y,z);
subplot(2,1,2)
[x,y,z] = peaks;
surf(x,y,z);
xtickangle(45);
ytickangle(45);
ztickangle(45);
%从 R2019b 开始,可以使用 tiledlayout 和 nexttile 函数显示分块图。
% 调用 tiledlayout 函数以创建一个 2×1 分块图布局。
% 调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。在每个坐标区中绘制。
% 然后通过将 ax2 指定为 ztickangle 的第一个输入参数,旋转下部图的 z 轴刻度标签。
tiledlayout(2,1)
ax1 = nexttile;
stem3(ax1,2*rand(5))


ax2 = nexttile;
stem3(ax2,2*rand(5))
ztickangle(ax2,-45)
%创建一个曲面图。然后,查询 z 轴刻度标签的旋转角度。默认情况下,不会旋转标签。
[x,y,z] = peaks;
surf(peaks)
ang = ztickangle

运行结果


本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。


作 者 | 郭志龙

编 辑 | 郭志龙
校 对 | 郭志龙

相关推荐

黄道十二宫杀手密码51年后被破解,来自两位程序员和数学家合作

杨净边策发自凹非寺量子位报道|公众号QbitAI黄道十二宫杀手(ZodiacKiller)可能是世界上最知名的高智商连环杀手,52年来从未被抓获。他的事迹已被改编成了多部好莱坞电影。△...

深入剖析MediaCodec解码器的基本原理及使用「建议新手收藏」

一,MediaCodec工作原理MediaCodec类Android提供的用于访问低层多媒体编/解码器接口,它是Android低层多媒体架构的一部分,通常与MediaExtractor、MediaMu...

Retrofit WebService 实践

前言作为Android开发,平时和后端聊得最多的除了喝酒就是接口。常用语:Restful和WebService,前者现在聊得多,后者以前聊得多。默认含义分别为:Restful:HTTP协议...

建议收藏!175部4K UHD版本经典高分电影洗版参考目录(2015之前)

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:1L789近两年很多经典高分老电影陆续开始重制成4KUHD版本,虽然我早已将这些电影的BD蓝光版收入,但纠结一番后还是花了不少时间将其全部...

2 个月的面试亲身经历告诉大家,如何进入 BAT 等大厂?

这篇文章主要是从项目来讲的,所以,从以下几个方面展开。怎么介绍项目?怎么介绍项目难点与亮点?你负责的模块?怎么让面试官满意?怎么介绍项目?我在刚刚开始面试的时候,也遇到了这个问题,也是我第一个思考的问...

详解Android官推Kotlin-First的图片加载库

前言Coil是一个非常年轻的图片加载库,在2020年10月22日才发布了1.0.0版本,但却受到了Android官方的推广,在AndroidDevelopersBackst...

webview 渲染机制:硬件加速方式渲染的Android Web

webview渲染是什么?webview渲染是用于展现web页面的控件;webview可以内嵌在移动端,实现前端的混合式开发,大多数混合式开发框架都是基于webview模式进行二次开发的w...

因为我对Handler的了解,居然直接给我加了5K

1Handler是什么?android提供的线程切换工具类。主要的作用是通过handler实现从子线程切换回主线程进行ui刷新操作。1.1为什么Handler能实现线程切换?在创建Handler的...

「经典总结」一个View,从无到有会走的三个流程,你知道吗?

前言一个View,从无到有会走三个流程,也就是老生常谈的measure,layout,draw三流程我们都知道Android视图是由一层一层构成的层级结构,直白点说,就是父View包含子View而子V...

这些垃圾代码是谁写的?哦,原来小丑竟是我自己

程序员是最喜欢自嘲、自黑的群体之一,比如他们常常称自己是“码农”、“程序猿”,再比如他们的工作明明是写代码、修Bug,也有人调侃说:“明明我们是修代码、写Bug!”本文整理了一些程序员“修代码、写...

手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇

/1前言/平时我们要下载图片,要要一个一个点击下载是不是觉得很麻烦?那有没有更加简便的方法呢?答案是肯定的,这里我们以天堂网为例,批量下载天堂网的图片。/2项目准备工作/首先我们第一步我们要安装...

音视频开发需要你懂得 ffmpeg 开源库的编码原理

引言音视频开发需要你懂得音视频中一些基本概念,针对编解码而言,我们必须提前懂得编解码器的一些特性,码流的结构,码流中一些重要信息如sps,pps,vps,startcode以及基本的工作原理,...

「8年老 Android 开发」最全最新 Android 面试题系列全家桶(带答案)

下面跟大家分享的这些面试题都是互联网大厂真实流出的面试内容,每个问题都附带完整详细的答案,不像网上的那些资料三教九流有的甚至还没答案,这些面试题我也是经过日积月累才整理出来的精品资料。这些面试题主要是...

手把手教你爬取天堂网1920*1080大图片(批量下载)——实战篇

/1前言/上篇文章手把手教你爬取天堂网1920*1080大图片(批量下载)——理论篇我们谈及了天堂网站图片抓取的理论,这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取。/2图片网址解...

PHP 8.1.9 更新发布

CLI:修复了内置服务器通过PHP_CLI_server_WORKERS环境变量的潜在溢出。修正了GH-8952(不再可能有意关闭std句柄)。Core:修复了GH-8923的错误(Windows上的...