【问题标题】:Set custom image from bottom to top inside bars of bar graph (using highcharts)?设置自定义图像从底部到顶部条形图的内部条形(使用高图)?
【发布时间】:2021-05-27 16:41:30
【问题描述】:

所以我在条形图(图表库 highcharts)中添加了自定义图像。但是图像是从上到下填充的,所以底部的图像被切割但x轴(下图)。

bar graph with custom image

到目前为止我写的代码

var redrawEnabled = true,
        ctr = 0;
        Highcharts.chart('container', {
            chart: {
                type: 'column',
                events: {
                    load: function(){
                        if(this.options.chart.type == 'column'){
                            this.xAxis[0].update({
                            reversed: false
                        });
                        }
                    },
                render: function() {
                    if (redrawEnabled) {
                        redrawEnabled = false;
                        var chart = this,
                            renderer = chart.renderer;
                            
                            chart.series[0].points.forEach(function(p) {
                            
                            var widthRatio = p.shapeArgs.width / p.shapeArgs.height
                            id = 'pattern-' + p.index + '-' + ctr;

                            var pattern = renderer.createElement('pattern').add(renderer.defs).attr({
                            width: 1,
                            height: widthRatio,
                            id: id,
                            patternContentUnits: 'objectBoundingBox'
                            });
                            renderer.image('coin6.png', 0, 0, 1, widthRatio).attr({}).add(pattern);

                            p.update({
                            color: 'url(#' + id + ')'
                            }, false);
                        });

                        ctr++;
                        chart.redraw();
                        redrawEnabled = true;
                    }
                }
            },

            },
            title: {
                text: null
            },
            legend:{ enabled:false },
            
            xAxis: {
                labels: {
                style: {
                        color: 'red',
                        fontSize:'10px'
                    }
                },
                categories: [
                'Jan',
                'Feb',
                'Mar',
                'Apr',
                'May',
                'Jun',
                'Jul',
                'Aug',
                'Sep',
                'Oct',
                'Nov',
                'Dec'
                ],
                crosshair: false,
            },
            yAxis: {
                min: 0,
                tickLength: 0,
                visible: false,
            },
            plotOptions: {
                bar: {
                    stacking: 'normal',
                },
                
            },
            series: [{
                pointWidth: 30,
                data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 144.0, 176.0, 135.6, 148.5,]
            }]
            });

1st :- 所以我想从底部开始图像,使其在底部看起来相似。所以我希望图像模式从下到上流动。 2nd :- 我可以对图像图案应用填充和边距,以便我可以正确堆叠硬币图像

我想实现硬币堆栈作为附加的图像。 final result I want to achieve

【问题讨论】:

标签: javascript jquery svg highcharts char


【解决方案1】:

您可以使用xAxis.offset 功能来增加此空间。

   xAxis: {
     labels: {
       style: {
         color: 'red',
         fontSize: '10px'
       }
     },
         offset: 50,
     categories: [
       'Jan',
       'Feb',
       'Mar',
       'Apr',
       'May',
       'Jun',
       'Jul',
       'Aug',
       'Sep',
       'Oct',
       'Nov',
       'Dec'
     ],
     crosshair: false,
   },

演示:https://jsfiddle.net/BlackLabel/0wqnbtdz/

API:https://api.highcharts.com/highcharts/xAxis.offset

【讨论】:

  • 但我想减少条形内硬币图像之间的空间,以便它们正确堆叠在一个上。喜欢这张图片(i.ibb.co/R2v6S5b/one.png
  • 我想实现与此图像完全相同的条形图(i.ibb.co/R2v6S5b/one.png)。我无法像这样创建精确的条形图。你能告诉我如何实现这一点,或者你知道我可以通过它创建完全像这样的条形图的任何库(i.ibb.co/R2v6S5b/one.png)。谢谢
  • 您需要将此硬币图像作为 SVG 元素提供。请注意,现在此图像具有白色背景。 i.ibb.co/BZ9phG2/coin6.png
  • 我添加了 svg 硬币图像(工作 jsfiddle 链接:-jsfiddle.net/lalitcse/4mz8pwab/7)结果是一样的。我们可以在 svg 硬币图像之间应用负边距吗?我的客户想要完全一样的图表(i.ibb.co/R2v6S5b/one.png)。谢谢
  • 用这张图恐怕无法实现。请注意,它是一个矩形,每个矩形都呈现在下一个矩形之上。
猜你喜欢
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 2013-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多