Javascript Plotly.js在图形中添加上边距不一致,如何防止

Javascript Plotly.js在图形中添加上边距不一致,如何防止,javascript,matlab,plotly,Javascript,Matlab,Plotly,在Plotly.js中,我有时会添加一个上边距(不一致),其中图形的总高度为300px,但图形本身的高度仅为150px。然后,SVG容器被拉伸,实际图形变小。我能做些什么来防止这种空白,为什么它只是选择性地出现 绘图仪Matlab语法,生成300px div而不是300px图形: `% PLOT MEAN MOVEMENT data = {... struct(... 'x', nScan, ... 'y',fastmotion, ...

在Plotly.js中,我有时会添加一个上边距(不一致),其中图形的总高度为300px,但图形本身的高度仅为150px。然后,SVG容器被拉伸,实际图形变小。我能做些什么来防止这种空白,为什么它只是选择性地出现

绘图仪Matlab语法,生成300px div而不是300px图形:

`% PLOT MEAN MOVEMENT
    data = {...
      struct(...
        'x', nScan, ...
        'y',fastmotion, ...
         'type', 'scatter')...
         };
    if max(fastmotion) < 0.3
        yminval = 0.3;
    else
        yminval = round(max(fastmotion) + 1);
    end
    layout = struct(...
    'yaxis', struct(...
    'title', 'Movement (mm)', ...
    'range', [0, yminval]));
    header{3} = 'Absolute Movement';
    layout.width = 800;
    layout.height = 300;
    p = plotlyfig; 
    p.data = data;
    p.layout = layout;
    p.PlotOptions.FileName = 'plot_5';
    html_file = plotlyoffline(p);
    html_file;`
`%绘图平均移动
数据={。。。
结构(。。。
“x”,nScan。。。
“y”,快速运动。。。
'类型','分散'。。。
};
如果最大值(快速运动)<0.3
yminval=0.3;
其他的
yminval=圆形(最大(快速运动)+1);
结束
布局=结构(。。。
“yaxis”,结构(。。。
'标题','移动(mm)。。。
'范围',[0,yminval]);
标题{3}='绝对移动';
布局宽度=800;
布局高度=300;
p=绘图图;
p、 数据=数据;
p、 布局=布局;
p、 PlotOptions.FileName='plot_5';
html_file=plotlyoffline(p);
html_文件`

显然,图m中的第68行引起了问题:

obj.PlotlyDefaults.MinTitleMargin = 80;

尽管我没有标题,但它有时会在图表顶部添加80像素,在指定的图表高度处达到最大值。将此值设置为0可以解决问题。

可能plotlyfig.m中的第68行只需设置默认边距

您可以手动设置页边距,如下所示:

p.layout.margin=struct('b',15,'l',30,'r',0,'t',0);

您可以在页边距上找到文档

但是如果您有勾号标签,请小心,如果您将页边距设置为零,标签将被裁剪。

您可以检查另一个问题,下面是答案

您可以使用的快速代码:

var layout = {
  margin: {
    l: 20,
    r: 20,
    b: 20,
    t: 20,
    pad: 5
  }, title: false
};

正如
mfedoten
在他的回答中所说:
但是如果你有勾号标签,要小心,如果你将边距设置为零,标签将被裁剪

这与MATLAB有什么关系?我建议您发布代码(而不是在图片中!),它与Plotly.js库有关,但我已经使用Matlab将其发送到HTML文件。然而,问题是关于Plotly.js库的。