在条形图matlab中使Y轴呈指数缩放
Make the Y-axis scale exponentially in bar chart matlab
我正在尝试使用条形图绘制一些数据并且它工作正常,但问题是无法从图中识别出差异,如下所示,因此我需要将 y 轴刻度更改为指数级数据之间的差异可能会出现……有什么帮助吗??
这是我的代码:
x = [0.1 1 10 100 1000 10000];
y = [2.66 24.58 81.72 87.90 87.99 88.00];
xplot = 1:numel(x);
figure;
bar(xplot,y);
set(gca,'XTick', xplot);
set(gca,'XTickLabel', x);
ylim([0 100]);
如果您希望 y
轴看起来更均匀,请考虑将比例更改为 semi-logarithmic 图,或通过 log
转换您的 y
数据转型:
选项 #1 - 将 y
轴更改为 log
比例:
只需获取当前轴并将YScale
设置为log
:
x = [0.1 1 10 100 1000 10000];
y = [2.66 24.58 81.72 87.90 87.99 88.00];
xplot = 1:numel(x);
figure;
bar(xplot,y);
set(gca,'XTick', xplot);
set(gca,'XTickLabel', x);
set(gca,'YScale','log'); %// NEW
%ylim([0 100]); %// Remove as we don't need it
这是我得到的图表:
请注意,y
轴不会更改其数据 - 只会更改您呈现它的方式。报价以 semi-logarithmic 为基础,从底部开始,我们从 1、2、3 到 10 (10^1
),接下来是 20、30、40,到 100 ( 10^2
),然后是 200、300、400,直到 1000 (10^3
) 等等。您当然可以在价格变动中看到一种模式,因为我们在 semi-logarithmic 的基础上增加。
选项 #2 - 将您的 y
数据转换为 log
:
只需将您的 y
数据 运行 通过 log
:
x = [0.1 1 10 100 1000 10000];
y = [2.66 24.58 81.72 87.90 87.99 88.00];
xplot = 1:numel(x);
figure;
bar(xplot,log(y)); %// NEW
set(gca,'XTick', xplot);
set(gca,'XTickLabel', x);
%ylim([0 100]); %// Remove as we don't need it
这是我们得到的:
请注意 y
轴已更改其单位。您可以留下免责声明,说明您的数据已 log
转换。
我正在尝试使用条形图绘制一些数据并且它工作正常,但问题是无法从图中识别出差异,如下所示,因此我需要将 y 轴刻度更改为指数级数据之间的差异可能会出现……有什么帮助吗??
这是我的代码:
x = [0.1 1 10 100 1000 10000];
y = [2.66 24.58 81.72 87.90 87.99 88.00];
xplot = 1:numel(x);
figure;
bar(xplot,y);
set(gca,'XTick', xplot);
set(gca,'XTickLabel', x);
ylim([0 100]);
如果您希望 y
轴看起来更均匀,请考虑将比例更改为 semi-logarithmic 图,或通过 log
转换您的 y
数据转型:
选项 #1 - 将 y
轴更改为 log
比例:
只需获取当前轴并将YScale
设置为log
:
x = [0.1 1 10 100 1000 10000];
y = [2.66 24.58 81.72 87.90 87.99 88.00];
xplot = 1:numel(x);
figure;
bar(xplot,y);
set(gca,'XTick', xplot);
set(gca,'XTickLabel', x);
set(gca,'YScale','log'); %// NEW
%ylim([0 100]); %// Remove as we don't need it
这是我得到的图表:
请注意,y
轴不会更改其数据 - 只会更改您呈现它的方式。报价以 semi-logarithmic 为基础,从底部开始,我们从 1、2、3 到 10 (10^1
),接下来是 20、30、40,到 100 ( 10^2
),然后是 200、300、400,直到 1000 (10^3
) 等等。您当然可以在价格变动中看到一种模式,因为我们在 semi-logarithmic 的基础上增加。
选项 #2 - 将您的 y
数据转换为 log
:
只需将您的 y
数据 运行 通过 log
:
x = [0.1 1 10 100 1000 10000];
y = [2.66 24.58 81.72 87.90 87.99 88.00];
xplot = 1:numel(x);
figure;
bar(xplot,log(y)); %// NEW
set(gca,'XTick', xplot);
set(gca,'XTickLabel', x);
%ylim([0 100]); %// Remove as we don't need it
这是我们得到的:
请注意 y
轴已更改其单位。您可以留下免责声明,说明您的数据已 log
转换。