Plotly.js不一致地向图表添加上边距,如何防止它

Pas*_*Pas 5 javascript matlab plotly

使用Plotly.js我有时会添加一个上边距(不一致),其中图形的总高度为300px,但图形本身只有150px高.然后拉伸SVG容器并且实际图形更小.我该怎么做才能防止这个空白区域,为什么它只是有选择地出现?

图表上方的保证金

Plotly 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;`
Run Code Online (Sandbox Code Playgroud)

Moh*_*nna 5

您可以在其他问题上查看此答案,这是小提琴

您可以使用的快速代码:

var layout = {
  margin: {
    l: 20,
    r: 20,
    b: 20,
    t: 20,
    pad: 5
  }, title: false
};
Run Code Online (Sandbox Code Playgroud)

正如mfedoten他的回答所说:But be careful if you have tick labels, if you set margins to zero the labels will be cropped


Pas*_*Pas 0

显然,plotlyfig.m 中的第 68 行导致了这个问题:

obj.PlotlyDefaults.MinTitleMargin = 80;
Run Code Online (Sandbox Code Playgroud)

即使我没有标题,它有时也会在图表顶部添加 80 px,达到指定的图表高度。将此值设置为 0 可解决该问题。