Как отобразить имя метки данных по оси Y на графиках?

Проблема:

Я создал вертикальные гистограммы, используя повторные диаграммы. Здесь я предоставляю свой код.

import React, { Component, PureComponent } from "react";

import { Card, CardBody, CardTitle } from "reactstrap";
import {
  Bar,
  BarChart,
  Tooltip,
  XAxis,
  YAxis,
  ResponsiveContainer,
  Cell,
  LabelList
} from "recharts";

import "./SubcribersByRegion.css";

const colors = [
  "#138185",
  "#26a0a7",
  "#65d3da",
  "#79d69f",
  "#cbe989",
  "#ebf898",
  "#f9ec86",
  "#fad144",
  "#ec983d",
  "#d76c6c"
];

const data = [
  {
    name: "Page A",
    pv: 2400,
    amt: 2400
  },
  {
    name: "Page B",
    pv: 1398,
    amt: 2210
  },
  {
    name: "Page C",
    pv: 9800,
    amt: 2290
  },
  {
    name: "Page D",
    pv: 3908,
    amt: 2000
  },
  {
    name: "Page E",
    pv: 4800,
    amt: 2181
  },
  {
    name: "Page F",
    pv: 3800,
    amt: 2500
  },
  {
    name: "Page G",
    pv: 4300,
    amt: 2100
  },
  {
    name: "Page H",
    pv: 4300,
    amt: 2100
  },
  {
    name: "Page I",
    pv: 4300,
    amt: 2100
  },
  {
    name: "Page J",
    pv: 4300,
    amt: 2100
  }
];

class SubcribersByRegion extends Component {
  render() {
    return (
      <div>
        <Card className="subscribers-by-region-card">
          <CardTitle className="subscribers-by-region-card-title">
            Subscribers by Region
          </CardTitle>
          <CardBody>
            <ResponsiveContainer width="100%" height="100%" aspect={5.0 / 6.0}>
              <BarChart
                data={data}
                layout="vertical"
                barGap={4}
                margin={{
                  top: 6,
                  right: 50,
                  left: 0,
                  bottom: 0
                }}
              >
                <Tooltip />
                <XAxis type="number" className="xaxies" dy={1} />
                <YAxis type="category" />
                <Bar dataKey="pv" fill="#8884d8" maxBarSize={10}>
                  {data.map((entry, index) => (
                    <Cell key={`cell-${index}`} fill={colors[index]} />
                  ))}
                  <LabelList dataKey="pv" position="right" />
                </Bar>
              </BarChart>
            </ResponsiveContainer>
          </CardBody>
        </Card>
      </div>
    );
  }
}

export default SubcribersByRegion;

Это показывает мне 0,1,2 ....... по оси Y, я хочу показать страницу A, страницу B, ... Может ли кто-нибудь помочь мне решить эту проблему, изменив мой код? Спасибо? Я много пытался найти решение этой проблемы, но мне не удалось найти хорошего решения этой проблемы.


person dwp    schedule 22.03.2019    source источник


Ответы (1)


Вам просто нужно указать, что такое dataKey для оси.

<YAxis type="category" dataKey="name" />

person Jibin Joseph    schedule 18.04.2019