我在上一个问题上得到了答案.但是,为了获得这些坐标(轴箱的大小和位置axis equal),我们需要做一些相对繁琐的计算.但是,由于MATLAB图形基于Java,我们可以访问Java属性.我发现如果我们在MATLAB中使用它:
jFrame = get(gcf,'JavaFrame');
BoxHeight = jFrame.getAxisComponent.getHeight;
BoxWidth = jFrame.getAxisComponent.getWidth;
Run Code Online (Sandbox Code Playgroud)
我们可以获得图形窗口的宽度和高度(也许这可以与轴的组件相关联).但它们与像素单元的值不同get(gcf, 'Position')或get(gca, 'Position')在像素单元的情况下不同.我不是Java的专家(我也试图使用Altman找到这些属性,但未成功findjobj).
因此,我有两个问题:
例如:
hf=figure('units','pixels'); ha=gca(hf);
set(ha,'units','pixels');
get(hf,'position')
get(ha,'position')
Run Code Online (Sandbox Code Playgroud)
ans =
488 342 560 420
73.8000 47.2000 434.0000 342.3000`
Run Code Online (Sandbox Code Playgroud)
然而BoxHeight=525,BoxWidth=700转变始终为零(alignmentX=0.0和alignmentY=0.0).
我需要图例中与图形数据无关的附加文本以及图例标题.像这样的东西(它是在OriginLab中制作的):
在此链接之后添加自定义图例与图表没有任何关系
我可以使用添加一些文本plot(NaN,NaN,'display','add info here2', 'linestyle', 'none').但是本文中有一个缩进:
如何避免这种缩进?是否有更优雅的方法来添加与图例无关的文本以及图例标题?
我使用cygwin64(或minGW)下的Armadillo软件包(v.7.300.1)生成带有randoms的矩阵:
#include<armadillo>
int main(){
arma::mat(3,3, arma::fill::randu).print();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该程序(重新构建或重新运行后)始终生成:
0.6900 0.5548 0.2074
0.5054 0.3784 0.6263
0.5915 0.2577 0.3401
Run Code Online (Sandbox Code Playgroud)
为什么总是一样的?怎么了?