Highcharts 条形图数据标签和带有条形图背景的条形图自定义css,Highchart

Highcharts 条形图数据标签和带有条形图背景的条形图自定义css,Highchart,highcharts,Highcharts,我有一个要求,改变我的条形图看起来像下面的东西 以下是需要完全填写的要求 左右间隔的圆形条 灰色背景 如图所示的数据标签(条形图右侧) 当前版本(单日期、多日期)如下所示 谢谢1)对于圆角,您可以使用 series: [{ data: [Some_Sequence_of_Data], borderRadiusTopLeft: 10, borderRadiusTopRight: 10, borderRadiusBottomRig

我有一个要求,改变我的条形图看起来像下面的东西

以下是需要完全填写的要求

  • 左右间隔的圆形条
  • 灰色背景
  • 如图所示的数据标签(条形图右侧)
  • 当前版本(单日期、多日期)如下所示

    谢谢

    1)对于圆角,您可以使用

    series: [{
            data: [Some_Sequence_of_Data],
            borderRadiusTopLeft: 10,
            borderRadiusTopRight: 10,
            borderRadiusBottomRight: 10,
            borderRadiusBottomLeft: 10
        }]
    
    2) 用于条线上方的背景

    xAxis: {
                gridLineColor: '#ebeff2',
                gridLineWidth: 10,
                tickPixelInterval: 1
            }
    
    3) 对于dataLabel样式的格式,您必须编写逻辑来查找xAxis的最大值,并像

    this.series.chart.options.plotOptions.bar.dataLabels.x -= maxValue;
    
    您可以通过提供

    plotOptions: {
                series: {
                    dataLabels: {
                        enabled: true,
                        style: {
                            //Your own style
                        }
                    }
                }
            }
    
    1) 对于圆角,可以使用

    series: [{
            data: [Some_Sequence_of_Data],
            borderRadiusTopLeft: 10,
            borderRadiusTopRight: 10,
            borderRadiusBottomRight: 10,
            borderRadiusBottomLeft: 10
        }]
    
    2) 用于条线上方的背景

    xAxis: {
                gridLineColor: '#ebeff2',
                gridLineWidth: 10,
                tickPixelInterval: 1
            }
    
    3) 对于dataLabel样式的格式,您必须编写逻辑来查找xAxis的最大值,并像

    this.series.chart.options.plotOptions.bar.dataLabels.x -= maxValue;
    
    您可以通过提供

    plotOptions: {
                series: {
                    dataLabels: {
                        enabled: true,
                        style: {
                            //Your own style
                        }
                    }
                }
            }
    

    对于圆角柱角,可以使用圆角插件。您可以在Highcharts网站上找到有关此插件的信息:

    对于您的背景,您可以使用不同颜色的新列系列。您可以使用Highcharts API中的参数,如分组、showInLegend,将此系列设置为背景样式。您可以在此处找到有关此参数的信息:

    您可以格式化“背景系列”的数据标签,以便它显示正常系列的值:

    如果希望背景列的宽度为图表的100%,可以将yAxis.max设置为其值

    您可以使用dataLabels.backgroundColor、dataLabels.borderRadius、dataLabels.shape和dataLabels.style格式化数据标签:

    在这里,您可以看到一些制作图表的简单代码:

      $('#container').highcharts({
        chart: {
          type: 'bar',
          marginLeft: 100,
          marginRight: 100
        },
        xAxis: {
          visible: false,
        },
        yAxis: {
          min: 0,
          max: 10,
          gridLineWidth: 0,
        },
        plotOptions: {
          bar: {
            dataLabels: {
              backgroundColor: '#000',
              shape: 'circle',
              padding: 8,
              color: 'white',
              style: {
                "textShadow": "0 0 2px black, 0 0 2px black"
              }
            }
          }
        },
        series: [{
          data: [10, 10, 10, 10, 10],
          showInLegend: false,
          animation: false,
          grouping: false,
          borderRadiusTopLeft: 7,
          borderRadiusTopRight: 7,
          borderRadiusBottomRight: 7,
          borderRadiusBottomLeft: 7,
          pointWidth: 15,
          enableMouseTracking: false,
          color: '#aaa',
          dataLabels: {
            enabled: true,
            x: 20,
            formatter: function() {
              var series = this.series.chart.series[1];
              return series.options.data[this.point.index];
            }
          }
        }, {
          name: 'normal series',
          data: [9, 7, 4, 7, 3],
          color: 'orange',
          borderRadiusBottomRight: 7,
          borderRadiusBottomLeft: 7,
          pointWidth: 15,
        }]
      });
    
    在这里,您可以看到一个示例,它是如何工作的:


    问候。

    对于圆角柱,您可以使用圆角插件。您可以在Highcharts网站上找到有关此插件的信息:

    对于您的背景,您可以使用不同颜色的新列系列。您可以使用Highcharts API中的参数,如分组、showInLegend,将此系列设置为背景样式。您可以在此处找到有关此参数的信息:

    您可以格式化“背景系列”的数据标签,以便它显示正常系列的值:

    如果希望背景列的宽度为图表的100%,可以将yAxis.max设置为其值

    您可以使用dataLabels.backgroundColor、dataLabels.borderRadius、dataLabels.shape和dataLabels.style格式化数据标签:

    在这里,您可以看到一些制作图表的简单代码:

      $('#container').highcharts({
        chart: {
          type: 'bar',
          marginLeft: 100,
          marginRight: 100
        },
        xAxis: {
          visible: false,
        },
        yAxis: {
          min: 0,
          max: 10,
          gridLineWidth: 0,
        },
        plotOptions: {
          bar: {
            dataLabels: {
              backgroundColor: '#000',
              shape: 'circle',
              padding: 8,
              color: 'white',
              style: {
                "textShadow": "0 0 2px black, 0 0 2px black"
              }
            }
          }
        },
        series: [{
          data: [10, 10, 10, 10, 10],
          showInLegend: false,
          animation: false,
          grouping: false,
          borderRadiusTopLeft: 7,
          borderRadiusTopRight: 7,
          borderRadiusBottomRight: 7,
          borderRadiusBottomLeft: 7,
          pointWidth: 15,
          enableMouseTracking: false,
          color: '#aaa',
          dataLabels: {
            enabled: true,
            x: 20,
            formatter: function() {
              var series = this.series.chart.series[1];
              return series.options.data[this.point.index];
            }
          }
        }, {
          name: 'normal series',
          data: [9, 7, 4, 7, 3],
          color: 'orange',
          borderRadiusBottomRight: 7,
          borderRadiusBottomLeft: 7,
          pointWidth: 15,
        }]
      });
    
    在这里,您可以看到一个示例,它是如何工作的:


    问候。

    (1)值得一提的是,它需要圆角插件。(2) 网格线不起作用。网格线放置在钢筋之间,而不是钢筋顶部。(3) 没有任何帮助,这只是datalabels对象的结构。此外,要在圆圈中显示标签,必须将'shape:'circle'添加到dataLabels对象中,但不能添加到style中。您好,这也可以为您的背景添加新的列系列。在这里你可以看到一个例子,它是如何工作的:@rahulsharma-一种程序员可以寻求的通用方法。不是一个完整的解释。该类型的通用方式由文档提供。没有必要为此发布答案。@Grzegorzblachlinski您可能想将其作为答案发布。(1)值得一提的是,它需要圆角插件。(2) 网格线不起作用。网格线放置在钢筋之间,而不是钢筋顶部。(3) 没有任何帮助,这只是datalabels对象的结构。此外,要在圆圈中显示标签,必须将'shape:'circle'添加到dataLabels对象中,但不能添加到style中。您好,这也可以为您的背景添加新的列系列。在这里你可以看到一个例子,它是如何工作的:@rahulsharma-一种程序员可以寻求的通用方法。不是一个完整的解释。该类型的通用方式由文档提供。没有必要发布答案。@GrzegorzBlachliński您可能想发布答案。