matlab - GNU Octave Matlab:绘制刻度标记
问题描述
我正在制作一个频率图,我想要一些关于刻度标签的帮助。这是我所拥有的:
semilogx([200,1000,5000], [0,6,0]);
xlim([20 20000]);
sc = [20:10:100,125:25:175];
scale = [sc,sc*10,sc*100, 20000];
xticks(scale);
xticklabels(scale);
set(gca,'XMinorTick','Off')
grid on;
set (gca, "xminorgrid", "off")
xlabel('frequency (Hz)');
ylabel('dB');
- 如何使 1000 及以上的所有数字显示为 1K、2K、5K 等?
- 我怎样才能使 50,100,200,500,1K,2K,5K,10K 上的线条看起来更粗/更黑?
解决方案
在 MATLAB 中
*不幸的是,我还没有找到如何加粗特定行
添加以下代码可以将刻度转换为第 1 部分中建议的新名称/格式。对于第 2 部分,我现在能找到的最好的方法是将特定数字加粗,不幸的是,不是特定的刻度/行。这里\bf
指示哪些标签要加粗。所有名称都将对应于您的轴向量最初设置的位置scale
。下面代码的最后一行表示当前轴的替换,gca
.
semilogx([200,1000,5000],[0,6,0]);
sc = [20:10:100,125:25:175];
scale = [sc,sc*10,sc*100, 20000];
Current_Axis = gca;
Current_Axis.XMinorTick = 'off';
xlabel('frequency (Hz)'); ylabel('dB');
xlim([20 20000]);
grid on;
X_Scale_Names = {'\bf20'; '30'; '40'; '\bf50'; '60';
'70';'80';'90';'\bf100';'125';'150';'175';'\bf200';'300';'400';
'500';'600';'700';'800';'900';'\bf1K';'1.25K';'1.5K';'1.75K';
'\bf2K';'3K';'4K';'\bf5K';'6K';'7K';'8K';'9K';'\bf10K';'12.5K';'15K';
'17.5K';'20K'};
要调整更多网格和轴属性:
Current_Axis = gca;
set(Current_Axis,'xtick',scale,'xticklabel',X_Scale_Names);
Current_Axis.LineWidth = 1;
Current_Axis.GridColor = 'k';
Current_Axis.GridAlpha = 0.5;
使用 MATLAB R2019b 运行
推荐阅读
- node.js - nodejs api未显示特定产品ID的产品
- big-o - 这是Prime的大O
- voice - 如何将网页上的食谱添加到 Google 助理?
- c++ - 在跨平台 Visual Studio 2022 CMake 项目中设置 VS_STARTUP_PROJECT 不起作用
- python - Loop over 2 dictionnaries and append several values to a key
- android - 如何在 Jetpack Compose 中将 TextField 的 inputType 设置为二进制(0 和 1)?
- numerical-methods - 数值最小化 8 变量约束系统的最有效计算方法
- python - _tkinter.TclError:错误的窗口路径名“.!button2”
- java - Spring数据弹性搜索4.1
- javascript - React:如何在使用 history.push 之前重定向到另一个组件?