【问题标题】:How to improve readability of MATLAB figure如何提高MATLAB图形的可读性
【发布时间】:2013-08-08 05:42:54
【问题描述】:

我有以下图,其中标记指定平均值,误差线标记最小值和最大值。如您所见,很难区分不同数据点之间的差异,因为它们重叠。

我删除了图例,以便顺便更容易看到这个情节。

我的想法是将图分成两个单独的图,其中 1 的数据从 0 到 0.25,另一个图的数据从 0.35 到 0.6,但我不确定这是否会大大改善情况或看起来很糟糕。

我希望一些经验丰富的 MATLAB 用户对如何修改我的绘图有一些想法(例如,更改轴限制、使用轴正方形或轴图像,或其他我不知道的东西)。

我什至尝试使用命令 set(gca,'XScale','log'); 切换到日志图;

但这是我的结果:

【问题讨论】:

  • 从 FileExchange 尝试BreakXAxis
  • Panel Chart 怎么样?
  • @Schorsch,我正在尝试使用 BreakXAxis,但我一次绘制每个点,因为我必须单独调整它们的标记。我在使用此功能时遇到问题。有什么建议吗?
  • 有一些非常大的误差线:o 我的意思是非常大......
  • 我会同意你将情节分成两个区域,或者生成第二个图形(或插图)放大到不清楚的区域。

标签: matlab graph charts


【解决方案1】:

这与 Try Hard 在评论中建议的内容一致。
以下代码是一个复制/粘贴示例,用于创建与您似乎拥有的数据集相似的数据集,绘制它,然后在空白区域中添加一个缩放图:

% generate example data-set
% for the sake of simplicity, the x-data will be ascending

X(1:5,1) = sort(rand(5,1)*0.05+0.1);
X(6:7,1) = sort(rand(2,1)*0.1+0.5);

Y(1:5,1) = rand(5,1)*10+50;
Y(6:7,1) = rand(2,1)*10+90;

Yerr = rand(7,2)*25;

% initial errorbar plot

eax = axes('Position', [0.15, 0.15, 0.75, 0.75]);
errorbar(eax,X,Y,Yerr(:,1),Yerr(:,2),'ob')

hold on

% control axis range

XMIN = min(X)-0.05;
XMAX = max(X)+0.05;
YMIN = min(Y-Yerr(:,1))-10.0;
YMAX = max(Y+Yerr(:,2))+10.0;

xlim([XMIN XMAX]);
ylim([YMIN YMAX]);

% determine max distance between the two groups
% and its location (index)

[MD, IMD] = max(X(2:end)-X(1:end-1))

% set up zoomed plot

% based on know axis limits and location
% the position of the zoomed plot can be 
% set up parametrically:

X1 = (X(IMD,1) + MD * 0.1)/(XMAX-XMIN);
Y1 = (YMIN + 10)/(YMAX-YMIN);
DX1 = 0.35;
DX2 = 1.0;

zax = axes('Position', [X1, Y1, DX1, DX1]);
errorbar(zax,X,Y,Yerr(:,1),Yerr(:,2),'ob')
set(zax,'XLim',[XMIN+0.04 X(IMD)+0.01],'Title',text('String','zoomed'))

这段代码产生这样的情节:

【讨论】:

  • 谢谢 你知道如何轻松制作面板图吗?
  • @starbox 我之前没有做过面板图。所以基本上我会从你开始的地方开始,研究 subplot 函数的选项并从那里获取它。
【解决方案2】:

这个来自 MATLAB 文件交换的解决方案最终可能看起来更好:

Panel-File Exchange-MATLAB Central

基本上我创建了两个独立的人物。 第一个具有整个图形。 第二个图显示了不可见点的放大版本。这些点具有相似的特征,使它们成为最好的。

所以我将第一张图标记为“所有选项” 第二张图“具有最佳权衡的选项”

我最终没有使用面板。我创建了单独的图表,以便轻松调整它们的大小,但 Panel 会做类似的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 2020-08-22
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多