图例未显示在折线图或条形图上 - React-Chartjs-2

如何解决图例未显示在折线图或条形图上 - React-Chartjs-2

我在将图例显示在我的反应仪表板中的几个图表上时遇到了一些困难。 我正在使用 react-chartjs-2 。图例最初是有效的,然后我测试了在 Chart.default 属性关闭图例,当我尝试重新打开它时,它们没有重新出现。

我的全局图表设置如下:

// react-chartjs-2 Global Styling 
defaults.global.elements.point.radius = 1;
defaults.global.elements.line.tension = 0.1;
defaults.global.elements.point.hoverRadius = 10;
defaults.global.elements.point.hiTradius = 12;

// Font
defaults.global.defaultFontSize = 12;
defaults.global.defaultFontColor = "#838383";

// Legend
defaults.global.legend.display = true;
defaults.global.legend.align = "start";
defaults.global.legend.position = "bottom";
defaults.global.legend.labels = {
  padding: 30,BoxWidth: 15,};

我的折线图、条形图和圆环图的本地图表属性都遵循类似的布局,即:

        <Line
          data={props.graph.data}
          height={300}
          options={{
            maintainAspectRatio: false,legend: {
              display: true,},scales: {
              xAxes: [{
                gridLines: {
                  display: false
                }
              }],yAxes: [{
                gridLines: {
                  drawBorder: false,ticks: {
                  beginAtZero:true,// Include a kwh sign in the ticks
                  callback: function(value,index,values) {
                      return value + 'kWh';
                  }
                },}]
            }
          }}
        />

如您所见,图例在全局和本地设置中均已启用。 目前,只有圆环图显示它的图例。切换 display:true 值只会将折线图/条形图的底部上下移动少量。

有人遇到过类似的问题吗?

解决方法

看起来默认值无法处理传递对象,如果您分别定义图例标签填充和框宽度的默认值,那么它将呈现您的图例。

正常示例,但问题与使用 react 包装器相同:

const defaults = Chart.defaults;

defaults.global.elements.point.radius = 1;
defaults.global.elements.line.tension = 0.1;
defaults.global.elements.point.hoverRadius = 10;
defaults.global.elements.point.hitRadius = 12;

// Font
defaults.global.defaultFontSize = 12;
defaults.global.defaultFontColor = "#838383";

// Legend
defaults.global.legend.display = true;
defaults.global.legend.align = "start";
defaults.global.legend.position = "bottom";
defaults.global.legend.labels.padding = 30;
defaults.global.legend.labels.boxWidth = 15;

var options = {
  type: 'line',data: {
    labels: ["Red","Blue","Yellow","Green","Purple","Orange"],datasets: [
        {
          label: '# of Votes',data: [12,19,3,5,2,3],borderWidth: 1
        },{
                label: '# of Points',data: [7,11,8,7],borderWidth: 1
            }
        ]
  },options: {
    scales: {
        yAxes: [{
        ticks: {
                    reverse: false
        }
      }]
    }
  }
}

var ctx = document.getElementById('chartJSContainer').getContext('2d');
new Chart(ctx,options);
canvas { 
 background-color : #eee;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.4/Chart.js" integrity="sha512-hZf9Qhp3rlDJBvAKvmiG+goaaKRZA6LKUO35oK6EsM0/kjPK32Yw7URqrq3Q+Nvbbt8Usss+IekL7CRn83dYmw==" crossorigin="anonymous"></script>
<body>
    <canvas id="chartJSContainer" width="600" height="400"></canvas>
</body>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?