识别 Plotly 中的子图

Posted

技术标签:

【中文标题】识别 Plotly 中的子图【英文标题】:Identify Subplots in Plotly 【发布时间】:2021-10-24 21:31:04 【问题描述】:

是否可以确定我的鼠标在哪个子图中?我有一个函数,我可以用它向我的跟踪添加点,但我的问题是,一旦我添加一个点,这个点就会显示在两个子图中,这就是为什么我希望能够获得数字/名称我的子图来区分偶数在哪个子图中被触发。 所以对我来说弄清楚事件在哪个子图中触发很重要。 这是一个带有两个带有点击功能的子图的 Plotly 示例。与其向我显示图中的数据,不如查看它点击了哪个子图对我来说很重要!

var trace1 = 
x: [1, 2, 3],
y: [4, 5, 6],
type: 'scatter'
;

var trace2 = 
x: [20, 30, 40],
y: [50, 60, 70],
xaxis: 'x2',
yaxis: 'y2',
type: 'scatter'
;

var data = [trace1, trace2];

var layout = 
grid: rows: 1, columns: 2, pattern: 'independent',
;
var myPlot = document.getElementById('myDiv')
Plotly.newPlot(myPlot, data, layout);
myPlot.on('plotly_click', function(data)
  var pts = '';
  for(var i=0; i < data.points.length; i++)
      pts = 'x = '+data.points[i].x +'\ny = '+
          data.points[i].y.toPrecision(4) + '\n\n';
  
  alert('Closest point clicked:\n\n'+pts);
);





  <head>
      <!-- Load plotly.js into the DOM -->
      <script src='https://cdn.plot.ly/plotly-2.3.1.min.js'></script>
  </head>

  <body>
      <div id='myDiv'><!-- Plotly chart will be drawn inside this DIV --></div>
  </body>

【问题讨论】:

【参考方案1】:

通过查看 MouseEvent 数据,您似乎可以使用以下方法识别子图:

myPlot.on('plotly_click', function (data) 
  console.log(data.event.target.dataset.subplot)
);

单击第一个子图日志xy。点击第二个子图日志x2y2

【讨论】:

以上是关于识别 Plotly 中的子图的主要内容,如果未能解决你的问题,请参考以下文章

如何将 R Plotly 中的子图之间的轨迹与共享的 Y 轴链接起来,以便 hoverinfo 出现在两者上?

在 Plotly 中删除子图之间的空间?

分组条形图的子图分组图例

在 plotly 中制作子图

Plotly:如何在子图上绘制烛台图?

为啥在添加 hline 或 vline 时 Plotly / Dash 混合图形和表格子图会中断?