【问题标题】:limit the axes for plotting in Matlab [duplicate]限制在Matlab中绘图的轴[重复]
【发布时间】:2012-11-21 13:47:41
【问题描述】:

可能重复:
is it possible to select a particular region in a scatterplot

是否可以减少输入文本文件中的数据点,这样这些数据点就不会出现在我的计算中。我正在使用以下来读取数据

fid = fopen('cr.txt');
A =  textscan(fid, '%f %f %f %f %f %*f %*f %*f %*f %*f %*s %*s %*s') ;
%read the file
a = A{1};
e = A{2};
c = A{3};
x = A{4};
y = A{5};

这里 x,y 是距离,如果我应用 xlim 和 ylim,我还想限制文件中相应的 a,e,c。该文件有大约百万个数据点。

我将进一步绘制 x、y 和 z(从 a、e、c 计算)作为散点图和颜色条 我用于整个数据点的绘图代码是

lg=log10(g2);
scatter(x(1:end-1), y(1:end-1),5, lg);
colorbar('eastoutside');
caxis([14 max(lg)]);
xlabel(' X-axis (microns)');
ylabel('Y-axis (microns)');

lg 由前面显示的 a,e,c 确定。所以我想做的就是在 x,y 的选定部分和相应的 lg 之间做一个绘图。

请帮忙!!

【问题讨论】:

  • 如果我理解正确,xlimylim 将完全按照您的意愿行事。所以我一定不明白这个问题!您是否尝试过使用xlimylim 却失败了?请注意,您不必使用整个百万点数据集,只需创建一个较小的数据集来测试您的绘图代码。
  • @DanBecker 是的 xlim 和 ylim 可以限制它们,但是对应的 z 呢?如何将 z 限制为选定的 x 和 y 点。
  • 你能发布你的绘图代码,并解释你遇到的确切问题吗?包括一组(非常小的)数据,以便我们都可以重现问题。
  • @DanBecker 你能指导我吗
  • 能否请您提供向量xylg 的示例值,以便我们重现错误?

标签: matlab text scatter


【解决方案1】:

是的,您可以使用set 或调用xlimylimzlim functions 直接在axes 上指定限制

plot(rand(1,100));
set(gca,'XLim', [10 20] ); % set the xlims to 10,20

plot(rand(1,100));
xlim([10 20]); % set the xlims to 10,20

【讨论】:

  • 我曾尝试使用它,但出现以下错误???在 79 C 处使用 ==> scatter 的错误必须是单一颜色、与 X 长度相同的向量或 M×3 矩阵。可能是因为从 a,e,c 派生的 z 不能像 x 和 y 那样受到限制
  • @RohanChakrabarty,我不确定该错误是否与设置限制有关。发布一个新问题,我会帮你解决的。
【解决方案2】:

嗯,这可能太明显了,无法解决您的问题,但在这一行中:

scatter(x(1:end-1), y(1:end-1),5, lg);

如果lgxy 大小相同,那么显然这是错误的,您需要这样做:

scatter(x(1:end-1), y(1:end-1),5, lg(1:end-1));

如果这不能解决您的问题,那么正如我在评论中所说,您必须提供我们可以运行以重现问题的完整代码,包括 xylg 向量的示例数据.

【讨论】:

  • 虽然这不是 d 答案,但你以前的答案现在不知何故起作用了......谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2017-10-09
  • 2011-10-21
  • 2019-04-08
  • 1970-01-01
  • 2014-06-09
相关资源
最近更新 更多