在条形图上绘制丰富的文本图标

时间:2019-01-31 13:17:22

标签: javascript html echarts

我正在尝试使图表带有图标。

所以我遵循了文档并提出了以下建议:

var weatherIcons = {
    'Sunny': './data/asset/img/weather/sunny_128.png',
    'Cloudy': './data/asset/img/weather/cloudy_128.png',
    'Showers': './data/asset/img/weather/showers_128.png'
};

var seriesLabel = {
    normal: {
        show: true,
        textBorderColor: '#333',
        textBorderWidth: 2
    }
}

option = {
    title: {
        text: 'Wheater Statistics'
    },
    tooltip: {
        trigger: 'axis',
        axisPointer: {
            type: 'shadow'
        }
    },
    legend: {
        data: ['City Alpha', 'City Beta', 'City Gamma']
    },
    toolbox: {
        show: true,
        feature: {
            saveAsImage: {}
        }
    },
    xAxis: {
        type: 'category',
        name: 'Days',
        data: ['Cloudy', 'Sunny', 'Showers'],

        formatter: function (value) {
            return '{' + value + '| }\n{value|' + value + '}';
        },
        axisLabel: {
            margin: 20,
            rich: {
                value: {
                    lineHeight: 30,
                    align: 'center'
                },
                Sunny: {
                    height: 20,
                    align: 'center',
                    backgroundColor: {
                        image: weatherIcons.Sunny
                    }
                },
                Cloudy: {
                    height: 20,
                    align: 'center',
                    backgroundColor: {
                        image: weatherIcons.Cloudy
                    }
                },
                Showers: {
                    height: 20,
                    align: 'center',
                    backgroundColor: {
                        image: weatherIcons.Showers
                    }
                }

            }

        }
    },
    yAxis: {
    },
    series: [
        {
            name: 'City Alpha',
            type: 'bar',
            data: [165, 170, 30],

        },
        {
            name: 'City Beta',
            type: 'bar',
            label: seriesLabel,
            data: [150, 105, 110]
        },
        {
            name: 'City Gamma',
            type: 'bar',
            label: seriesLabel,
            data: [220, 82, 63]
        }
    ]
};

您可以通过以下链接进行测试:Link to Echarts并粘贴代码。

但是,我可以得到图表来显示图标。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

您对formatter的功能有一个错误的地方

formatter应该在axisLabel

示例:

xAxis: {
   // ....
   axisLabel: {
      formatter: function (value) {
         return '{' + value + '| }\n{value|' + value + '}';
      },
      // ....
   }
}