【问题标题】:React-google-chart not taking up the optionsReact-google-chart 不占用选项
【发布时间】:2020-04-08 17:17:17
【问题描述】:

我使用react-google-chart 以图形形式(条形图)显示我的数据,根据要求我必须制作一个dual-y-axis chart

我已经制作了该图表,但问题是该图表没有占用options。这是一个Bar 图表,当我将图表设置为ColumnChart 时,它会选择选项但不会呈现为dual-y-axis-chart,如果我将Bar 作为图表类型,它不会选择选项

我错过了什么?这是我的代码:

import React from "react";
import ReactDOM from "react-dom";
import Chart from "react-google-charts";
const data = [
  ["Month", "CTC", "Gross Salary", "Variation of CTC", "Total No of Employes"],
  ["Jan", 35000, 27000, 10000, 3],
  ["feb", 30000, 24000, 8000, 4],
  ["Mar", 50000, 37000, 7000, 5],
  ["May", 20000, 17000, 5000, 6],
  ["June", 20000, 17000, 5000, 5],
  ["July", 20000, 17000, 5000, 10],
  ["August", 20000, 17000, 5000, 7],
  ["Sep", 20000, 17000, 5000, 5],
  ["Nov", 20000, 17000, 5000, 5],
  ["Dec", 20000, 17000, 5000, 9]
];
const options = {
  width: 900,
  title: "Nearby galaxies",
  curveType: "function",
  series: {
    3: {
      axis: "test"
    }
  },
  legend: { position: "bottom" }
};
class App extends React.Component {
  render() {
    return (
      <div className="App">
        <Chart
          chartType="Bar"
          width="100%"
          height="400px"
          data={data}
          options={options}
          legendToggle
        />
      </div>
    );
  }
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

工作example

编辑

我什至不采用chartEvent 来实现这个目标,如果不是 react-google-chart 那么我对任何开源图表库开放的任何其他库。

【问题讨论】:

  • 请注意,我们更喜欢这里的技术写作风格。我们轻轻地劝阻问候,希望你能帮助,谢谢,提前感谢,感谢信,问候,亲切的问候,签名,请你能帮助,聊天材料和缩写 txtspk,恳求,你多久了被卡住、投票建议、元评论等。只需解释您的问题,并展示您尝试过的内容、预期的内容以及实际发生的情况。
  • @halfer 我已经编写了我尝试过的整个代码,但我明确提到了一件事情不起作用
  • 我不知道我需要多少次删除你的乞求和恳求以及关于悲伤和苦难的故事,但如果可以的话,我会敦促你对这里的志愿编辑们宽容。在这个平台上鼓励技术写作:它更容易阅读,并且没有分散注意力的情感胁迫。乞讨也会适得其反; read this answer 了解原因。
  • @halfer 好的,我不会再这样做了。只是坚持使用这个图表库,这就是原因。

标签: javascript reactjs react-google-charts


【解决方案1】:

optionsColumnChart 不同。

参见示例中的classicOptions https://developers.google.com/chart/interactive/docs/gallery/columnchart#dual-y-charts

所以当您将选项替换为时它可以工作

const options = {
  width: 900,
  title: "Nearby galaxies",
  curveType: "function",
  seriesType: "bars",
  series: {
    3: { targetAxisIndex: 1 }
  },
  vAxes: {
    0: { title: "primary" },
    1: { title: "secondary" }
  },
  legend: { position: "bottom" }
};

https://codesandbox.io/s/react-google-charts-columnchart-with-click-handler-y6mo6

【讨论】:

  • 嘿只是一个问题,它没有在选项中使用language: 'hi_IN',
  • 设置language的目的是什么?我的理解是它主要用于日期区域设置特定格式,但您的数据中没有日期字段。 Month col 被视为“字符串”。
  • Chart 组件上设置语言使用chartLanguage 属性。
  • 我在我的选项中使用chartLanguage:{language:'en-IN'}, 不起作用.. 我也在尝试chartLanguage:'en-IN',内部选项不起作用,最后在图表组件内部我正在做chartLanguage={'en-IN'} 它也不起作用
  • “不工作”是什么意思?预期的输出是什么?
【解决方案2】:

这里重要的是他们对Bar图表的评论:

注意这里我们使用 Bar 而不是 BarChart 来加载材料设计版本

https://react-google-charts.com/bar-chart#right-y-axis

因此,选项有些不同。与其将title 传递给根对象,不如将它放在chart 之下。

options={{
  // Material chart options
  chart: {
    title: 'Population of Largest U.S. Cities',
    subtitle: 'Based on most recent and previous census data',
  },
}

但是,它似乎并不尊重所有选项(例如legend)。

关于width,您将width 属性设置为100%,并将选项设置为900px。设置width, usewidth` 属性。

例子:

const data = [
  ["Month", "CTC", "Gross Salary", "Variation of CTC", "Total No of Employes"],
  ["Jan", 35000, 27000, 10000, 3],
  ["feb", 30000, 24000, 8000, 4],
  ["Mar", 50000, 37000, 7000, 5],
  ["May", 20000, 17000, 5000, 6],
  ["June", 20000, 17000, 5000, 5],
  ["July", 20000, 17000, 5000, 10],
  ["August", 20000, 17000, 5000, 7],
  ["Sep", 20000, 17000, 5000, 5],
  ["Nov", 20000, 17000, 5000, 5],
  ["Dec", 20000, 17000, 5000, 9]
];
const options = {
  chart: {
    title: "Nearby galaxies",
    legend: { position: "bottom" }
  },
  curveType: "function",
  series: {
    3: {
      axis: "test"
    }
  }
};
class App extends React.Component {
  render() {
    return (
      <div className="App">
        <Chart
          chartType="Bar"
          width={900}
          height="400px"
          data={data}
          options={options}
          legendToggle
        />
      </div>
    );
  }
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

https://codesandbox.io/s/react-google-charts-columnchart-with-click-handler-4dywj


您可以改用ColumnChart。使用此图表,您将能够自定义图例位置等

const options = {
  title: "Nearby galaxies",
  legend: { position: "bottom" },
  curveType: "function",
};

https://codesandbox.io/s/react-google-charts-columnchart-with-click-handler-wltpt

我不确定series 属性。我没有在文档中看到它。

【讨论】:

  • 嘿,它没有占用选项,我想把语言和图例对齐到底部,但它仍然在右侧,它也没有占用语言
  • > 但是,它似乎并不尊重所有选项(例如图例)。
  • 我知道如果我使用ColumnChart ,那么我可以使用选项,但如果我使用它,它不会给我双 y 轴图表,请检查您的更新答案
  • 对。我不知道其他解决方案。对不起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多