morris.js line update ymin
问题描述:
有什么方法可以更新morris.js行/区的ymin吗? 我已经尝试过:morris.js line update ymin
chart.ymin = 10
但YMIN仍为0
当它`不可能morris.js,还有没有其他的图表libarys包括这样的功能?
答
解决方案2
解决方案1
确保您的莫里斯参数resize
设置为true。
然后,在你的行动,你可以设置ymin
,重新绘制图表,并确保图表处于有利位置(触发窗口大小调整):
chart.ymin = 10;
chart.redraw();
$(window).trigger("resize");
请尝试以下片段:
var data = [
{ Date: '2016-01-01', Sales: 10 },
{ Date: '2016-01-02', Sales: 20 },
{ Date: '2016-01-03', Sales: 40 },
{ Date: '2016-01-04', Sales: 5 },
{ Date: '2016-01-05', Sales: 50 }
];
var chart = new Morris.Line({
element: 'chartLine',
data: data,
xkey: 'Date',
ykeys: ['Sales'],
labels: ['Sales'],
resize: true,
xLabels: 'day',
parseTime: false
});
$(".ymin").on("click", function() {
chart.ymin = 10;
chart.redraw();
$(window).trigger("resize");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
<link href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css" rel="stylesheet" />
<div id="chartLine"></div>
<div class="ymin">Set ymin</div>
解决方案2
将Morris参数resize
设置为您的温度图为false。
请确保您在Morris GitHub上包含Morris CSS。如果没有这个CSS,悬停图表将显示图表底部的数据,并会在setInterval
的下一次数据更新中隐藏x轴。
删除试图获取/设置图表高度的代码,触发窗口大小调整并调用温度图表重绘。
最后添加以下代码在你$(document).ready
功能:
var delay = (function() {
var timer = 0;
return function (callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
$(window).resize(function() {
delay(function() {
TemperatureChart.redraw();
}, 300);
}).trigger('resize');
那么请CodePen以下叉:codepen.io/krlzlx/pen/prwMLr
谢谢,它工作正常。除了一点点(几个小时后)之外。每次我执行它之后,所有图表,不仅是我更改的一个图表会随机增加一个像素。 (http://imgur.com/a/cDG90)该页面应如下所示:http://imgur.com/a/0mKCm。你有想法吗?还是在morris js上开放问题的最佳方式? – Cripi
不幸的是,莫里斯现在还没有更新一段时间,所以我不认为你会在一个问题上得到帮助。图表越来越大,我也在挣扎。我设法解决这个问题,但不记得具体如何。如果我是正确的,你可以尝试设置'svg'高度,如'$('svg')。height(800)'。告诉我,如果它有帮助。 – krlzlx
嘿,我试图做的就是这样:'var heightBefore = document.getElementById(“chart”)。firstChild.height.animVal.value; chart.ymin = response.data.chart.minimum.temperature; chart.redraw(); $(window).trigger(“resize”); document.getElementById(“chart”)。firstChild.height = heightBefore;'。我得到的身高很好,但我无法改变图表的高度?你如何改变你的身高? – Cripi