我在我的应用程序中使用了react-plotly.js,关于如何在多个子图中配置共享的x轴的文档似乎很少,我想知道其他人是否已经成功地配置了<Plot />以获得该结果.

在我的 case 中,我有3个垂直堆叠的小情节.我正在寻找这样的结果,当我放大其中一个子情节时,其他的也会以相同的比例放大.

以下是我拥有的一些代码片段:

import Plot from "react-plotly.js";

function MyComponent() {

  const layout = useMemo(
    (): Partial<Plotly.Layout> => ({
      grid: { rows: 3, columns: 1, pattern: "independent", subplots: ["xy", "x2y2", "x3y3"] },
      autosize: true,
      xaxis: { anchor: "y", domain: [0, 0.99], showticklabels: false },
      xaxis2: { anchor: "y2", domain: [0, 0.99], showticklabels: false },
      xaxis3: {
        anchor: "y3",
        domain: [0, 0.99],
        showticklabels: true,
        title: {
          text: "Time",
          font: {
            size: 16,
          },
        },
      },
      yaxis: {
        anchor: "x",
        domain: [0.67, 0.93],
      },
      yaxis2: {
        anchor: "x2",
        domain: [0.33, 0.59],
      },
      yaxis3: {
        anchor: "x3",
        domain: [0, 0.26],
      },

      margin: {
        t: 15,
        b: 75,
        l: 80,
      },
      legend: {
        x: 1,
        y: 0.5,
      }
    }), []
  );

  return (
    <Plot layout={layout} config={{ autosizable: true }} data={[...]} />
  )

}

希望有人能设法让这件事起作用,并能分享自己的见解.

推荐答案

您需要在轴上设置matches(或scaleanchor)个约束,例如.要链接x轴,请执行以下操作:

const layout = useMemo(
  (): Partial<Plotly.Layout> => ({
    grid: { rows: 3, columns: 1, pattern: "independent", subplots: ["xy", "x2y2", "x3y3"] },
    autosize: true,
    xaxis: { anchor: "y", matches: 'x3', domain: [0, 0.99], showticklabels: false },
    xaxis2: { anchor: "y2", matches: 'x3', domain: [0, 0.99], showticklabels: false },
    xaxis3: {
      anchor: "y3",
      domain: [0, 0.99],
      showticklabels: true,
      title: {
        text: "Time",
        font: {
          size: 16,
        },
      },
    },
    // ...
  }), []
);

Reactjs相关问答推荐

useReducer和带有回调的useState之间是否有实际区别?

react应用程序中的字体不适用于.scss扩展名

使用Thattle和Use Effect setTimeout进行搜索有什么不同

如何创建react router v6的自定义子路由?

在Reaction中更新状态时,我将变得未定义

Reaction中的数据加载不一致

在新屏幕上显示照片时出现问题-react

Reaction路由DOM v6不包含上下文(Supabase)

React,当我调用handleSubmit()函数时,我正在将application/json和multiform/data中的数据发送到后端,但student_image中没有数据:null

使用Next.js和Next-intl重写区域设置

我在Route组件上使用元素属性,这样就不需要ID了吗?

单击按钮不会切换组件(当按钮和组件位于两个单独的文件中时)

useEffect 和 ReactStrictMode

如何在一个 Next.js 项目中使用两种布局?

如何更改TimePicker中下拉菜单的背景 colored颜色 和字体 colored颜色 - MUI React

在一个事件处理程序中进行多次调度是个好主意吗?

为什么我会收到此错误:无法在我的react 包上读取 null 的属性(读取useState)?

react 路由dom没有路由匹配位置错误/在路由中制作组件

列表应该有一个唯一的关键props

在状态中存储多个选定的选项