在“正”Y轴上绘制一组负数据

4

我有一组数据想要在MATLAB中绘制,但问题是这组数据全部为负数。我希望将其绘制在Y轴上,就好像它是正数一样,以便图形留在第一象限,同时我也希望值显示为负数。

显然,我尝试了:

plot(x,-y);

但这并不起作用,因为它在第一象限绘图,但值被转换为正值。有什么帮助吗?我已经搜索了文档和论坛,但没有找到。
2个回答

2
也许您希望反转y轴上的值增长方向?
x = -rand(100,1); %// some negative data
figure;
ah = axes;
plot(1:100, x);
%// reverse the direction in which values on y-axis increase
set(ah,'ydir','reverse')

更多信息请参见坐标轴属性,特别是XDirYDirZDir


1
您可以手动设置y轴的标签。以下是一个示例解决方案:
x = 1:10;
y = -1:-1:-10;

plot(x,abs(y))
ax = gca;
ax.YTick = abs(y);
ax.YTickLabel = num2cell(y);

虽然这个解决方案在技术上可以工作,但是你会遇到一些副作用,比如数据光标工具提示显示错误的 y 值。考虑到改变 YDir 属性可以让你避免所有这些问题,并且更简单,我真的不认为这有什么意义。 - mikkola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接