私は単に、「縦棒グラフ」でドリルダウン効果を無効にしようとしています。誰でも助けることができますか? Fiddle http://jsfiddle.net/D8Ez3/ のサンプルコードを次に示します。
*ご覧のとおり、グラフの凡例はクリック可能です。すべてのアイテムをクリックするとグラフが空に戻るため、凡例のアイテムをクリックできないようにする必要があります。むしろ、チャートのドリルダウンはありません。何か案は?
chart = new Highcharts.Chart({
chart: {
renderTo: 'impact',
type: 'column',
margin: [0, 0, 0, 0],
spacingTop: 0,
spacingBottom: 0,
spacingLeft: 0,
spacingRight: 0,
backgroundColor: null,
events: {
load: function (event) {
console.log(this);
}}},
exporting: {
buttons: {
exportButton: {
enabled:false
},
printButton: {
enabled:false
}}},
credits: {
enabled: false
},
title: {
text: ''
},
subtitle: {
text: ''
},
xAxis: {
categories: ['Reporting Year']
},
yAxis: {
min: 0,
title: {
text: 'Millions (mm)'
}
},
legend: {
enabled:false,
layout: 'vertical',
backgroundColor: '#FFFFFF',
align: 'left',
verticalAlign: 'top',
x: 50,
y: 30,
floating: true,
shadow: true
},
tooltip: {
formatter: function () {
return '' + this.x + ': ' + this.y + ' mm';
}
},
plotOptions: {
column: {
pointPadding: 0.2,
size: '95%',
borderWidth: 0},
point: {
events: {
legendItemClick: function () {
return true; // <== returning false will cancel the
default action }}},
allowPointSelect: false,
},
series: [{
name: 'Yr 1',
data: [23.7] },
{
name: 'Yr 2',
data: [13.6] },
{
name: 'Yr 3',
data: [49.9] },
{
name: 'Yr 4',
data: [83.6] }]
});
あなたは近くにいました。の代わりに:
plotOptions: {
column: {
pointPadding: 0.2,
size: '95%',
borderWidth: 0
},
point: {
events: {
legendItemClick: function () {
return false; // <== returning false will cancel the default action
}
}
},
allowPointSelect: false,
},
あなたが欲しい:
plotOptions: {
column: {
pointPadding: 0.2,
size: '95%',
borderWidth: 0,
events: {
legendItemClick: function () {
return false;
}
}
},
allowPointSelect: false,
},
パイを扱う場合は、次のことを行う必要があります。
pie: {
showInLegend: true,
allowPointSelect: false,
point:{
events : {
legendItemClick: function(e){
e.preventDefault();
}
}
}
}
これは、Highchartsグラフの凡例をクリック不可にする方法です。特定の凡例をクリックすると、対応するスライスよりもグラフから消えるので、ビジネス要件に従ってグラフを永続化するため、凡例をクリック不可にすることができます。
plotOptions: {
column: {
pointPadding: 0,
borderWidth: 1,
},
series: {
events: {
legendItemClick: function (e) {
e.preventDefault();
}
}
}
}
ES6を使用する場合、矢印関数でさらに短くすることができます-DOM要素を指しているので、単純にfalse ...を返すことができます.
{
name: 'Name of this chart',
type: 'line',
lineWidth: 1,
color: '#333333',
events: {
legendItemClick: () => false // disable legend click
},
data: [1, 5, 10, 8, 19, 28, 0 , 12]
};
from Highcharts JS APIドキュメント (v7.1.1)
「デフォルトのアクションは、ポイントの可視性を切り替えることです。これは、event.preventDefault()を呼び出すことで防ぐことができます。」
だからこれは円グラフで私のために働いたものです-
plotOptions: {
pie: {
point: {
events: {
legendItemClick: function (e) {
e.preventDefault();
}
}
}
}
}
他の回答への便利な追加として、凡例のホバースタイルを無効にすることもできます。
legend: {
itemStyle: {
cursor: 'default',
},
itemHoverStyle: {
color: '#333333',
}
},
これを実現する方法を示す JSFiddle を次に示します。
plotOptions: {
series: {
events: {
legendItemClick: function () {
var visibility = this.visible ? 'visible' : 'hidden';
if (!confirm('The series is currently ' +
**strong text** visibility + '. Do you want to change that?')) {
return false;
}
}
}
}
}