Matlab画图——坐标轴文字设置

本文介绍如何使用MatLab的plot函数绘制图形,并详细讲解了如何通过XTick和XTickLabel属性来定制X轴的坐标显示,包括设置特定的文字标签。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大家用MatLab画图的一般都会用到plot函数,例如:

x = 1 : 24;
y = x .^ 2;
plot (x, y, '*-', 'linewidth', 2);
效果如下:

如果需要将X轴的坐标设置为文字,需要使用XTick和XTickLabel属性,举例如下:

x = 0 : 24;
y = x .^ 2;
plot (x, y, '*-', 'linewidth', 2);
set(gca, 'xTick', [0:6:24]);
set(gca,'XTickLabel',{'00:00','06:00','12:00','18:00','24:00'})
set(gca, 'FontSize', 18);
xlim([0, 24])
效果如下:


### MATLAB 中绘制带对数刻度坐标的图形 在 MATLAB 中,可以通过 `semilogx`、`semilogy` 和 `loglog` 函数来实现不同类型的对数坐标轴绘图。以下是这些函数的具体用途: - 使用 `semilogx(x, y)` 可以使 x 轴为对数尺度而 y 轴保持线性[^2]。 - 使用 `semilogy(x, y)` 则可以使 y 轴为对数尺度而 x 轴保持线性。 - 如果希望两个轴都采用对数尺度,则可以使用 `loglog(x, y)`[^4]。 对于特定需求——即生成 **logyaxis-probability xaxis** 图形,在 MATLAB 中可按照如下方式操作: #### 设置 Y 轴为对数尺度 通过设置 `'YScale'` 属性为 `'log'` 来调整 Y 轴的比例: ```matlab set(gca, 'YScale', 'log'); ``` 此命令会将当前图形窗口中的 Y 轴转换成对数比例。 #### 自定义 X 轴的概率分布 为了适配概率密度作为 X 轴的情况,通常需要先计算数据对应的累积分布函数 (CDF),再将其映射到百分位数值上。例如,假设我们有一组随机变量样本 `data`,则可通过以下方法获得其 CDF 值并进行绘图: ```matlab % 计算经验累计分布函数 [f, xi] = ecdf(data); % 将 CDF 映射至百分比形式 prob_x = 100 * f; figure; semilogy(prob_x, sort(data), '-o'); % 对应 semilogy 绘制 xlabel('Probability (\%)'); ylabel('Flood Magnitude'); title('Logarithmic Probability Plot of Flood Frequency Analysis'); grid on; ``` 上述代码片段展示了如何利用 `ecdf()` 函数获取经验分布,并进一步完成基于半对数座标系下的可视化工作[^3]。 另外需要注意的是,当处理极小或者极大数量级的数据时,务必确认输入向量不含零或负值,因为取自然对数运算无法接受此类情况存在。 #### 完整示例程序 下面给出一个完整的例子用来展示如何构建 flood frequency analysis 的 logy-axis probability x-axis 图表: ```matlab clc; clear all; close all; % Generate synthetic dataset representing annual maximum floods. rng(0); % For reproducibility annual_max_flooding = gamrnd(5, 1.5, [1, 100]); % Compute empirical cumulative distribution function values. [f, xi] = ecdf(annual_max_flooding); probability_values = 100 .* f; % Create the logarithmically scaled plot with probabilities along x-axis. figure(); semilogy(probability_values, sort(xi), '-', ... 'LineWidth', 1.5,... 'Color',[0.8500, 0.3250, 0.0980]); hold on; scatter(probability_values, sort(xi), [],... [0.8500, 0.3250, 0.0980], 'filled'); % Add labels and gridlines to enhance readability. xlabel('Annual Exceedance Probability (%)', 'FontSize', 12); ylabel('Peak Discharge (cfs)', 'FontSize', 12); title('Return Period vs Peak Flow - Log Scale', 'FontSize', 14); legend({'Best Fit Line','Data Points'}, 'Location','NorthWest'); grid minor; set(gca,'XMinorTick','on','YMinorTick','on',... 'FontName','Times New Roman','FontSize',10); set(gca,'YScale','log'); xlim([min(probability_values)*0.9 max(probability_values)*1.1]); ylim([min(sort(xi))*(0.7) max(sort(xi))*1.3]); box off; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值