【发布时间】:2018-08-06 00:50:41
【问题描述】:
我正在使用 morris 折线图,我想在图表中显示 7 天的客户注册,但 MON 和 Tue 没有显示在我的图表中。请告诉我如何解决这个问题。
我想像这张图表一样显示工作日。
Morris.Line({
element: 'myfirstchart',
data: [{
"period": "2018-02-26",
"total": 4
},
{
"period": "2018-02-27",
"total": 2
},
{
"period": "2018-02-28",
"total": 5
},
{
"period": "2018-03-01",
"total": 9
},
{
"period": "2018-03-02",
"total": 15
},
{
"period": "2018-03-03",
"total": 12
}
],
lineColors: ['#f5901a', '#fc8710', '#FF6541', '#A4ADD3', '#766B56'],
xkey: 'period',
ykeys: ['total'],
labels: ['Total'],
xLabels: 'day',
xLabelAngle: 90,
xLabelFormat: function(d) {
var weekdays = new Array(7);
weekdays[0] = "MON";
weekdays[1] = "TUE";
weekdays[2] = "WED";
weekdays[3] = "THU";
weekdays[4] = "FRI";
weekdays[5] = "SAT";
weekdays[6] = "SUN";
return weekdays[d.getDay() - 1] + '-' +
("0" + (d.getMonth() + 1)).slice(-2) + '-' +
("0" + (d.getDate())).slice(-2);
},
resize: true
});
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/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>
<div id="chart_div" style="width: 100%; height: 300px;">
<div class="chart-title">Client Registrations</div>
<div id="myfirstchart" style="height: 250px;"></div>
</div>
【问题讨论】:
-
这是因为
getDay()返回星期一的1,而不是0。所以你需要做weekdays[d.getDay() - 1] + ... -
您好,感谢您的回复,但星期一仍然没有显示
-
那是角度的原因,根本就没有足够的空间。如果您设置
xLabelAngle: 90,它会出现。如果您只是水平显示缩写的日期名称,根据您的设计,它应该可以正常工作 -
太棒了!谢谢它工作正常
-
很高兴为您提供帮助。我添加它作为你的答案
标签: javascript jquery linechart morris.js weekday