Повторные диаграммы - перевернутая вертикальная столбчатая диаграмма с закругленными углами имеет перевернутые концы

Я хочу создать гистограмму с закругленными полосами, которая выглядит вот так, но с полосами в обратном порядке

введите описание изображения здесь

Но после добавления свойства перевернутого к компоненту XAxis он становится таким

введите описание изображения здесь

Вот мой код, который я сделал из одного из примеров в Recharts

const {BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend} = Recharts;
const data = [
      {name: 'Page A', uv: 4000, pv: 2400, amt: 2400},
      {name: 'Page B', uv: 3000, pv: 1398, amt: 2210},
      {name: 'Page C', uv: 2000, pv: 9800, amt: 2290},
      {name: 'Page D', uv: 2780, pv: 3908, amt: 2000},
      {name: 'Page E', uv: 1890, pv: 4800, amt: 2181},
];

const SimpleBarChart = React.createClass({
   render () {
     return (
       <BarChart width={ 600 } height={ 400 } data={ data } maxBarSize={ 20 } layout={ 'vertical' }>
         <CartesianGrid strokeDasharray="3 3" />
         <XAxis type={ 'number' } orientation={ 'top' } reversed />
         <YAxis type={ 'category' } orientation={ 'right' } dataKey={ 'name' } />
         <Bar dataKey={ 'pv' } fill={ '#8884d8' } radius={ 20 }/>
      </BarChart>
    );
  }
})

ReactDOM.render(
  <SimpleBarChart />,
  document.getElementById('container')
);
body {
  margin: 0;
}

#container {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  padding: 10px;
  width: 800px;
  height: 800px;
  background-color: #fff;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.js"></script>
<script src="https://npmcdn.com/[email protected]/dist/react-with-addons.min.js"></script>
<script src="https://npmcdn.com/[email protected]/dist/react-dom.min.js"></script>
<script src="https://npmcdn.com/[email protected]/prop-types.min.js"></script>
<script src="https://npmcdn.com/[email protected]/umd/Recharts.min.js"></script>

<div id="container">
  <!-- This element's contents will be replaced with your component. -->
</div>

Обновление. Я попытался удалить свойство перевернутого и просто добавил данные с отрицательными значениями, чтобы увидеть, будут ли такие же перевернутые полосы и будут ли результаты такими же. Таким образом, может показаться, что когда значения отрицательны, а полосы расположены вертикально, закругленные углы будут действовать именно так. Кто-нибудь знает, что происходит.

Обновление - похоже, что это была ошибка на стороне Recharts и была исправлена ​​в более новой версии.


person user3804711    schedule 24.12.2018    source источник


Ответы (2)


Вы должны указать тип в XAxis как число

<BarChart 
  width={600} 
  height={300} 
  data={data} 
  layout="vertical"
  margin={{top: 5, right: 30, left: 20, bottom: 5}}
>
  <XAxis type="number"/>
  <YAxis type="category" dataKey="name" />
  <CartesianGrid strokeDasharray="3 3"/>
  <Tooltip/>
  <Legend />
  <Bar dataKey="pv" fill="#8884d8" />
  <Bar dataKey="uv" fill="#82ca9d" />
</BarChart>

Поскольку значение типа по умолчанию в XAxis - это «категория».

person Community    schedule 05.03.2019

Последняя версия Recharts решает эту проблему. После обновления теперь работает нормально

person user3804711    schedule 06.05.2019