Получить значение оси X на панели события Highchart - PullRequest
0 голосов
/ 29 августа 2018

Что ж, у меня есть гистограмма, показывающая несколько баллов, и я хочу получить значение оси X (идентификатор пользователя), когда я щелкаю серию графика.

enter image description here

Проведя некоторые исследования, я смог показать значение оси x, когда щелкаю по фону диаграммы (я использую console.log, чтобы показать эти данные), но я не смог сделать это, щелкнув по любой серии графика (цветная полоса). )

Это фрагмент:

var cats=["1.- John :8","2.- Mark :7","3.- Mary :5","4.- Charles :2","5.- Sarah :1"];
var prcs=[2,12,13,11,15];
Highcharts.chart('container', {
    chart: {
        type: 'bar',
      events:{
        click: function(te){
          console.log(prcs[Math.round(te.xAxis[0].value)]);
        }
      }
    },
    title: {
        text: null
    },
	credits: {
		enabled: false
	},
    xAxis: {
        categories: cats,
		lineColor: '#FFFFFF',
		tickColor: 'transparent',
		labels: {
			align: 'left',
			x: 0,
			y: -12,
			style: {
				textOverflow: 'none',
                width:'300px',
				whiteSpace:'normal'//set to normal
			}
		}
    },
    yAxis: {
        min: 0,
        title: {
            text: null,
        },
		labels: {
			enabled: false
		}
    },
    legend: {
		enabled: false
        //reversed: true
    },
    plotOptions: {
        series: {
            stacking: 'normal',
            dataLabels: {
                enabled: true,
                align: 'left',
                color: '#FFFFFF',
                x: 0
            },
            events:{
              click: function(te){
                console.log(this.name);
              }
            }
            //pointPadding: 0,
            //groupPadding: 0
        },
		bar:{
		}
    },
    series:	[{
        name: 'High',
		color: '#009900',
        data: [0,1,0,1,0]
    }, {
        name: 'Mid',
		color: '#FFCC66',
        data: [4,3,0,1,1]
    }, {
        name: 'Low',
		color: '#FF6666',
        data: [4,4,5,1,0]
    }]
});
<script src="https://code.highcharts.com/highcharts.js"></script>

<div id="container" style="height: 210px"></div>

То же самое в jsFiddle: http://jsfiddle.net/29vfsc4t/5/

Если вы нажмете на фон, вы получите идентификатор пользователя, и, щелкнув по любой панели, вы получите «оценку», мне нужно получить идентификатор пользователя, когда я нажимаю на панель.

1 Ответ

0 голосов
/ 29 августа 2018

Вы должны поймать point.event вместо chart.event, чтобы получить категорию xAxis балла:

  plotOptions: {
    series: {
      stacking: 'normal',
      dataLabels: {
        enabled: true,
        align: 'left',
        color: '#FFFFFF',
        x: 0
      },
      point: {
        events: {
          click: function(te) {
            console.log(this.category);
            console.log(this.x);
          }
        }
      }
    },
    bar: {}
  },

Обратите внимание на изменение console.log(this.category) для отображения имени xAxis.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...