ng2-charts定制悬停在条形图上时显示的工具提示的数据和整个html内容

问题描述 投票:3回答:2

我正在使用来自valor软件的ng2图表和我的角度2应用程序。我无法弄清楚如何自定义悬停在条形图上时显示的默认工具提示的整个html内容。

有任何想法吗?

更新:

这是我的html /标记代码:

<canvas baseChart width="100" height="100" style="padding:24px; border:1px solid black;border-color:gray" 
            [datasets]="barChartData"
            [labels]="barChartLabels"
            [options]="barChartOptions"
            [colors]="chartColors"
            [legend]="barChartLegend"
            [chartType]="barChartType"
            (chartHover)="chartHovered($event)"
            (chartClick)="chartClicked($event)"></canvas>
  </div>

在我的typescript类中,我实现了barChartOptions函数:

tooltips: {
    callbacks: {
        ...
        ...
}}

定制一些东西,但这似乎真的有限。例如,我可以使用label属性更改标签等:

label: function(tooltipItem, data) {                
    return "customlabel";
}  

但是,我不知道如何添加其他标签。使用ng2-charts,如果我有一个带有两个数据集的条形图,并将鼠标悬停在一个条上,则它只显示该条的标签和数据,但它不显示第二个数据集的第二个条的数据。我想显示两者,但不知道如何为此添加其他标签和数据。

angular chart.js angular2-directives ng2-charts
2个回答
0
投票

基本上,您不能使用css将样式应用于画布图表。但是,chartJS提供了一种将样式应用于工具提示的方法。请在Tooltip customisation阅读更多内容

还要考虑这个例子:内部图表选项tooltips: {backgroundColor: '#fff'}


0
投票

我成功完成了以下设置:

模板

<canvas
  baseChart
  [chartType]="chartSettings.lineChartType"
  [colors]="chartSettings.lineChartColors"
  [datasets]="lineChartData"
  [labels]="lineChartLabels"
  [legend]="chartSettings.lineChartLegend"
  [options]="chartSettings.lineChartOptions"   <---- the important one
>
</canvas>

我创建了一个文件stats.chart-settings.ts的设置:

export const ChartSettings: any = {
  lineChartOptions: {
    tooltips: {
      backgroundColor: 'rgba(255,255,255,0.9)',
      bodyFontColor: '#999',
      borderColor: '#999',
      borderWidth: 1,
      caretPadding: 15,
      colorBody: '#666',
      displayColors: false,
      enabled: true,
      intersect: true,
      mode: 'x',
      titleFontColor: '#999',
      titleMarginBottom: 10,
      xPadding: 15,
      yPadding: 15,
    }
  }
}

在组件中,我只需:

import { ChartSettings } from './stats.chart-settings';

...

chartSettings: any;

constructor() {
  this.chartSettings = ChartSettings;
}
© www.soinside.com 2019 - 2024. All rights reserved.