javascript - Plotly.js 添加标记将填充添加到 x 轴

标签 javascript d3.js plotly

在向折线图添加标记时,有没有办法防止 Plotly 更改 x 轴上的填充。
请看下面的两个片段。唯一的区别是第 24 行,其中 'lines'改为'lines+markers' .

第一个没有标记的片段:

<head>
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>

<body>

  <div id="myDiv">
  </div>
  <script>
    var layout = {
      xaxis: {
        showticklabels: true,
        tickmode: 'auto',
        nticks: 15,
        tickangle: 45,
        rangemode: 'tozero',
      },
    };

    var trace1 = {
      x: ['Week 1', 'Week 2', 'Week 3', 'Week 4', 'Week 5', 'Week 6', 'Week 7', 'Week 8'],
      y: [10, 15, 13, 17, 10, 15, 13, 17],
      type: 'scatter',
      mode: 'lines',
    };

    var data = [trace1];

    Plotly.newPlot('myDiv', data, layout);
  </script>
</body>


带有标记的第二个片段:

<head>
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>

<body>

  <div id="myDiv">
  </div>
  <script>
    var layout = {
      xaxis: {
        showticklabels: true,
        tickmode: 'auto',
        nticks: 15,
        tickangle: 45,
        rangemode: 'tozero',
      },
    };

    var trace1 = {
      x: ['Week 1', 'Week 2', 'Week 3', 'Week 4', 'Week 5', 'Week 6', 'Week 7', 'Week 8'],
      y: [10, 15, 13, 17, 10, 15, 13, 17],
      type: 'scatter',
      mode: 'lines+markers',
    };

    var data = [trace1];

    Plotly.newPlot('myDiv', data, layout);
  </script>
</body>


Padding difference

最佳答案

这有点令人困惑,因为它实际上是关闭了 y 轴。
无论如何,这可以通过设置 yaxis 来解决。至showgrid: false然后抵消 yaxislayer-above重新定位标签。

这可以像我一样在 css 中完成,也可以在 Javascript 中完成。

我可能在这里没有像素相同(设置为 102 像素),但你应该明白了。

<head>
  <script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
  <style>
  .yaxislayer-above {
     transform: translate(102px,100px);
  }
  </style>
</head>

<body>

  <div id="myDiv">
  </div>
  <script>
    var layout = {
      yaxis: {
        showgrid: false,
      },
      xaxis: {
        showticklabels: true,
        tickmode: 'auto',
        nticks: 15,
        tickangle: 45,
        rangemode: 'tozero',
      },
    };

    var trace1 = {
      x: ['Week 1', 'Week 2', 'Week 3', 'Week 4', 'Week 5', 'Week 6', 'Week 7', 'Week 8'],
      y: [10, 15, 13, 17, 10, 15, 13, 17],
      type: 'scatter',
      mode: 'lines+markers',
    };

    var data = [trace1];

    Plotly.newPlot('myDiv', data, layout);
  </script>
</body>

关于javascript - Plotly.js 添加标记将填充添加到 x 轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46383368/

相关文章:

javascript - Angular2 应用程序问题 - 必须执行该函数两次,才能强制显示更改

javascript - 如何获取我的链接被点击的位置

Javascript slideUp/slideDown/一个按钮

javascript - 使用 secret_token 从私有(private)播放列表流式传输轨道生成 404

javascript - 绘制点 x 和 y,轴 y 和 x 未正确显示

javascript - 如何在 sankey 中添加带有工具提示的节点名称列表

python - 如何从经/纬度坐标计算形状并用绘图绘制它

javascript - 使用 Regex 提取 GOTO/GOSUB 的行号

javascript - 展平 D3.js 嵌套数据或将其映射到新数据集

python - 使用 Pytorch 中的范数函数绘制二次损失并使用 Plotly 显示它