ChartJS 标绘的条形图与不同的颜色React,但它们都是黑色的,为什么?

wmvff8tz  于 2022-11-07  发布在  Chart.js
关注(0)|答案(2)|浏览(163)

我想用不同的颜色为ABC绘制我的柱状图,但我有3个相同颜色的柱状图,即黑色,我猜这是在fill字段问题中。如果我只绘制一个柱状图,那么它将以正确的颜色打印,但当它超过1时,它将全部为黑色。我使用recharts
有什么想法吗?

  1. export default function Overview() {
  2. const { ratingBar } = graphs ?? {}
  3. const COLORS = {
  4. 'A': 'red',
  5. 'B': 'green',
  6. 'C': 'orange',
  7. }
  8. function ratingGraph() {
  9. const data = ratingBar
  10. return ({
  11. graph: {
  12. type: 'bar',
  13. showTooltip: true,
  14. showXAxis: true,
  15. showYAxis: true,
  16. showLegend: true,
  17. container: {
  18. data,
  19. },
  20. bars: [
  21. {
  22. dataKey: 'count',
  23. fill: COLORS[data.map((m) => m.title)],
  24. }
  25. ],
  26. xaxis: {
  27. dataKey: 'title',
  28. tick: { style: { fontSize: '.9rem' } },
  29. },
  30. yaxis: {
  31. dataKey: 'count',
  32. domain: [0, 100],
  33. },
  34. },
  35. }).graph
  36. }
  37. return (
  38. <div >
  39. {...ratingGraph()}
  40. </div>
  41. )
  42. }

下面是我的api数据:

  1. {
  2. "ratingBar": [
  3. {
  4. "title": "A",
  5. "count": 2
  6. },
  7. {
  8. "title": "B",
  9. "count": 48
  10. },
  11. {
  12. "title": "C",
  13. "count": 78
  14. }
  15. ]
  16. }
6mzjoqzu

6mzjoqzu1#

  1. fill: data.map(m => COLORS[m.title])

你的Map是错误的。我猜填充需要一个颜色数组。但是你正在访问一个Map数组的COLORS键,这个数组总是未定义的。

j2cgzkjk

j2cgzkjk2#

您 必须 使用 单元 格 属性 :

  1. cells: data.map(m => ({fill: COLORS[m.title]}))

中 的 每 一 个

相关问题