我有一个问题需要几个月才能在morris.js图表​​中正确显示.
<script>

var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];

Morris.Line({
  element: 'morris-line-chart',data: [
          { m: '01',a: 0,b: 270 },{ m: '02',a: 54,b: 256 },{ m: '03',a: 243,b: 334 },{ m: '04',a: 206,b: 282 },{ m: '05',a: 161,b: 58 },{ m: '06',a: 187,b: 0 },{ m: '07',a: 210,{ m: '08',a: 204,{ m: '09',a: 224,{ m: '10',a: 301,{ m: '11',a: 262,{ m: '12',a: 199,],xkey: 'm',ykeys: ['a','b'],labels: ['2014','2015'],xLabelFormat: function (x) { return months[x.getMonth()]; }
});
</script>

但图表上的所有月份显示为’Jan’……

解决方法

如果是 look at the documentation,则所需的xkey选项定义如下:

A string containing the name of the attribute that contains date (X)
values. Timestamps are accepted in the form of millisecond timestamps
(as returned by Date.getTime() or as strings in the following formats:

  • 2012
  • 2012 Q1
  • 2012 W1
  • 2012-02
  • 2012-02-24
  • 2012-02-24 15:00
  • 2012-02-24 15:00:00
  • 2012-02-24 15:00:00.000

目前,在您的数据中,您只提供代表月份的int(即01,02,03等)

因此,如果您将月份数据更改为有效的时间戳字符串,则根据文档,您应该有一个有效的方法将返回的“月份”值的索引映射到月份标签数组…

例:

var months = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];

Morris.Line({
  element: 'morris-line-chart',data: [{
    m: '2015-01',// <-- valid timestamp strings
    a: 0,b: 270
  },{
    m: '2015-02',b: 256
  },{
    m: '2015-03',b: 334
  },{
    m: '2015-04',b: 282
  },{
    m: '2015-05',b: 58
  },{
    m: '2015-06',b: 0
  },{
    m: '2015-07',{
    m: '2015-08',{
    m: '2015-09',{
    m: '2015-10',{
    m: '2015-11',{
    m: '2015-12',xLabelFormat: function(x) { // <--- x.getMonth() returns valid index
    var month = months[x.getMonth()];
    return month;
  },dateFormat: function(x) {
    var month = months[new Date(x).getMonth()];
    return month;
  },});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="http://cdn.oesmith.co.uk/morris-0.4.3.min.css" rel="stylesheet" />
<script src="http://cdn.oesmith.co.uk/morris-0.5.0.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>

<div id="morris-line-chart" style="height: 250px;"></div>

编辑

上面的例子可以通过包括morris版本0.5.1(而不是0.5.0 – 根据github page about this issue – 我没有在其他版本中测试过这一点)和稍微改变xLabelFormat选项(函数中的x)来调整条形图. ){…}显然是一个不同的对象,条形图与线条):

条形图示例:

// months array and data are left the same
// only change is that the labelFormat option is removed
// and,x in xLabelFormat is a different object with Bar charts vs Line

// [inspect console to see the object]

var months = ["Jan","Dec"];

Morris.Bar({
    element: 'morris-bar-chart',data: [{
        m: '2015-01',b: 270
    },{
        m: '2015-02',b: 256
    },{
        m: '2015-03',b: 334
    },{
        m: '2015-04',b: 282
    },{
        m: '2015-05',b: 58
    },{
        m: '2015-06',b: 0
    },{
        m: '2015-07',{
        m: '2015-08',{
        m: '2015-09',{
        m: '2015-10',{
        m: '2015-11',{
        m: '2015-12',xLabelFormat: function (x) { // <-- changed
        console.log("this is the new object:" + x);
        var month = months[x.x];
        return month;
    },});
<link href="http://cdn.oesmith.co.uk/morris-0.4.3.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://cdn.oesmith.co.uk/morris-0.5.1.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>


<div id="morris-bar-chart" style="height: 250px;"></div>

javascript – 如何在morris.js图表​​中正确显示月份?的更多相关文章

  1. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  2. MPAndroidChart BarChart水平/垂直

    我正在使用MPAndroidChart库.在BarChart默认情况下,所有条形图都是垂直的,如何在水平方向上显示它?

  3. 如何修改MPAndroidChart BarChart中的条宽?

    我正在使用MPAndroidChartlibrary.我想修改条形图中的条形大小.你能告诉我们在mpandroid图表中检查条形图中条形图的修改大小的位置解决方法您可以减小条之间的间距,这将自动增加条的宽度.更新v3.0.0:从此库版本开始,您可以使用以下方法控制条宽:您为此方法提供的数字表示x轴上的特定间隔.如果你的总轴的范围是10k,并将条宽设置为1000,条将覆盖总x轴范围的10%.

  4. android – Phonegap本地构建 – jquery ajax错误:readystate 0 responsetext status 0 statustext error

    解决方法您是否在索引文件中包含了内容安全元标记?

  5. Ajax简单的异步交互及Ajax原生编写

    一提到异步交互大家就会说ajax,仿佛ajax这个技术已经成为了异步交互的代名词.那下面将研究ajax的核心对象

  6. Ajax跨域问题的解决办法汇总(推荐)

    本文给大家分享多种方法解决Ajax跨域问题,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧

  7. ajax编写简单的登录页面

    这篇文章主要为大家详细介绍了ajax编写简单登录页面的具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  8. ajax从JSP传递对象数组到后台的方法

    今天小编就为大家分享一篇ajax从JSP传递对象数组到后台的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  9. 解决ajax返回验证的时候总是弹出error错误的方法

    这篇文章主要介绍了解决ajax返回验证的时候总是弹出error错误的方法,感兴趣的小伙伴们可以参考一下

  10. 使用AJAX完成用户名是否存在异步校验

    这篇文章主要介绍了使用AJAX完成用户名是否存在异步校验的相关资料,需要的朋友可以参考下

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部