1
저는 flotCharts를 사용하고 있으며 두 개 이상의 막대 그래프를 사용하는 경우 막대를 가져 가면 마지막 그래프의 값만 표시되고 다른 그래프는 첫번째 값과 같은 값. 여기에 코드입니다 :jQuery flotcharts - 첫 번째 그래프의 값만 툴팁에 표시합니다.
HTML :
<div class="flot-chart">
<div class="flot-chart-content" id="[email protected]"></div>
</div>
자바 스크립트 :
var [email protected] = [
@foreach (var serie in Model.Series)
{
<text>
{
label: '@serie.Name',
@DisplayGraphType(serie)
data: [
@foreach (var point in serie)
{
<text>
[@point.Item1, @point.Item2],
</text>
}
]
},
</text>
}
];
var xlabels = [
@foreach (var lbl in Model.Labels)
{
<text>[@lbl.Item1, "@lbl.Item2"],</text>
}
];
function getLabel(xval) {
var lbl = xval;
xlabels.forEach(function(e){
console.log(parseInt(e[0]) == parseInt(xval));
if (parseInt(e[0]) == parseInt(xval)) {
lbl = e[1];
}
});
return lbl;
}
$(function() {
$.plot($("#[email protected]"), [email protected], {
series: {
lines: {
lineWidth: 2,
fill: @((Model.Series.Count() == 1).ToString().ToLower()),
},
bars: {
barWidth: 0.6,
align: "center"
},
points: {
fill: @((Model.Series.Count() == 1).ToString().ToLower()),
}
},
xaxis: {
ticks: xlabels,
tickDecimals: 0
},
colors: @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model.Series.Select(o => o.Color).ToArray())),
grid: {
color: "#999999",
hoverable: true,
clickable: true,
borderWidth: 0,
},
legend: {
show: true
},
tooltip: true,
tooltipOpts: {
content: function(label, xval, yval) {
var content = getLabel(xval) + ": " + yval;
return content;
},
}
});
});
@ControlID 값이 GUID입니다 및 자동으로 무작위로 생성되고이 차트 사이에 항상 다릅니다. 나 그래프의 두 번째 줄에 올려 놓으면 아래 예에서
는, 그것이 다른 그래프의 두 번째 줄 값 (만 xaxes 잘못) 도시 :
각 그래프마다 한 번씩 js 코드가 포함되어 있습니까? 그런 다음'xlabels'을 덮어 쓰고 마지막 그래프의 값만 남습니다. 여기에서도 ID를 사용해보십시오. – Raidri
예,이 스크립트를 각 그래프에 넣었습니다. 아마 맞을 것입니다. 값을 덮어 씁니다. 신분증을 어디에 써야하나요? 나는 각 그래프를 식별하는 ControlID를 가지고있다. –
'series_ @ ControlID'처럼'xlabels_ @ ControlID'로 이름을 바꾼다. 'getLabel()'함수도 변경해야합니다. – Raidri