如何获取折线图中的所有json值

2024-01-08

我有很多 Json 值,我将使用它们创建一个折线图,但它在图表中只显示一个值。我是 javascript 的新手,有一个想法在图表中绘制所有值。请任何人给出这个问题的 jsfiddle 示例。

HTML代码

<div id="chartContainer" class="chart">

Script

$.getJSON('dashboard_summary.php?', function(data) {
    var len = data.length

    $.each(data, function(i, v) {               
        chart(v.Date,v.Tip,v.Revenue,len);
    });
});

function chart (dates,Tip,Rev,len) {    
    var chart = new CanvasJS.Chart("chartContainer", {
        title: {
            text: "Revenue",
            fontSize: 15
        },
        axisX: {
            gridColor: "Silver",
            tickColor: "silver",
            valueFormatString: "DD/MMM"
        },                        
        toolTip: {
            shared:true
        },
        theme: "theme2",
        axisY: {
            gridColor: "Silver",
            tickColor: "silver"
        },
        legend: {
            verticalAlign: "center",
            horizontalAlign: "right"
        },
        data: [
            {                   
                type: "line",
                showInLegend: true,
                lineThickness: 2,
                name: "Tip",
                markerType: "square",
                color: "#F08080",
                dataPoints: [
                    {
                        x: new Date(dates),
                        y: parseInt(Tip)
                    }
                ]
            },
            {        
                type: "line",
                showInLegend: true,
                name: "Revenue",
                color: "#20B2AA",
                lineThickness: 2,
                dataPoints: [
                    {
                        x: new Date(dates),
                        y: parseInt(Rev)
                    }
                ]
            }
        ],
        legend: {
            cursor: "pointer",
            itemclick: function(e) {
                if (typeof(e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
                    e.dataSeries.visible = false;
                } else {
                    e.dataSeries.visible = true;
                }
                chart.render();
            }
        }
    });

    chart.render();
};

Json数据

{
    "Date": "2014-01-30",
    "CarsParked": "1",
    "RevenueWithTip": "0",
    "Revenue": "0",
    "Tip": "0",
},
{
    "Date": "2014-01-31",
    "CarsParked": "10",
    "RevenueWithTip": "10",
    "Revenue": "7",
    "Tip": "3",
},
{
    "Date": "2014-02-28",
    "CarsParked": "28",
    "RevenueWithTip": "55",
    "Revenue": "47",
    "Tip": "8",
}

根据您的代码,我可以明白为什么图表只显示一个点,这是预期在图表上显示的那些点的最后一个数据点。问题是这样的:

var len = data.length;

/* Loop through each item in the data */
$.each(data, function(i, v) {               
    chart(v.Date,v.Tip,v.Revenue,len); /* Draw a chart with one point */
});

因此,您最终会绘制许多图表,其中最后一个图表具有最后一个数据点来替换所有先前的图表。

相反,您应该调整foreach如下所示,将数据转换为点数组后绘制图表。

$.getJSON('dashboard_summary.php?', function(data) {
    var Tips = [];
    var Revs = [];
    $.each(data, function(i, v) {               
        Tips.push({ x: new Date(v.Date), y: parseInt(v.Tip) });
        Revs.push({ x: new Date(v.Date), y: parseInt(v.Revenue) });
    });
    chart(Tips, Revs);
});

另外,您可以格式化x轴,使图表看起来更漂亮(这里的x轴格式是为上面给出的数据设计的。在您的应用程序中,您可能需要根据实际数据使用其他格式样式) :

function chart (Tips, Revs) { 
    var chart = new CanvasJS.Chart("chartContainer", {
    title: {
        text: "Revenue",
        fontSize: 15
    },
    axisX: {
        gridColor: "Silver",
        tickColor: "silver",
        valueFormatString: "DD/MMM",
        interval:14,
        intervalType: "day"
    },                        
    toolTip: {
        shared:true
    },
    theme: "theme2",
    axisY: {
        gridColor: "Silver",
        tickColor: "silver"
    },
    legend: {
        verticalAlign: "center",
        horizontalAlign: "right"
    },
    data: [
        {                   
            type: "line",
            showInLegend: true,
            lineThickness: 2,
            name: "Tip",
            markerType: "square",
            color: "#F08080",
            dataPoints: Tips
        },
        {        
            type: "line",
            showInLegend: true,
            name: "Revenue",
            color: "#20B2AA",
            lineThickness: 2,
            dataPoints: Revs
        }
    ],
    legend: {
        cursor: "pointer",
        itemclick: function(e) {
            if (typeof(e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
                e.dataSeries.visible = false;
            } else {
                e.dataSeries.visible = true;
            }
            chart.render();
        }
    }
});

chart.render();
}

A jsFiddle http://jsfiddle.net/maE9z/1/被制作here http://jsfiddle.net/maE9z/1/供您审阅。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取折线图中的所有json值 的相关文章

随机推荐

  • 在 Unity3D 中,“设置”网格的边界会做什么或实现什么?

    在 Unity 代码库中 我看到了这个 the game object currently has no mesh attached MeshFilter mFilter gameObject AddComponent
  • 我们可以使用 for-each 循环遍历传递给函数的数组吗?

    我知道我们可以通过这种方式迭代作为参数传递的数组 NO ERROR void fun int a int n for int i 0 i
  • 如何在 NetBeans 中显示/显示隐藏或不可见的字符?

    如何在 NetBeans 中显示 显示隐藏字符 在其他编辑器中 如果打开此功能 空格可能会显示为小中心点 制表符可能会显示为右箭头 此功能对于查看文件是否使用制表符或空格进行缩进等很有用 这个功能已经缺失很长一段时间了 功能要求 https
  • Apache Camel 中的忽略消息

    希望这听起来并不荒谬 但我怎样才能丢弃消息在骆驼故意 到目前为止 我将它们发送到日志组件 但同时我什至不想记录提款 有没有 dev 空骆驼的端点 您可以使用消息过滤器 eip 来过滤掉不需要的消息 http camel apache org
  • xml 中的额外右括号

    我使用此示例将一些变量保存到 xml 文件 如何将当前类设置为返回类型结果 https stackoverflow com questions 14639554 how do i set the current class to the r
  • Groupby 总和、索引与列结果

    对于以下数据框 df pd DataFrame group a a b b data 5 10 100 30 columns group data print df group data 0 a 5 1 a 10 2 b 100 3 b 3
  • 如何在 ASP.NET MVC 中的多个视图上正确填充控制器中 ViewData 的下拉列表

    我已经说过这一点大约一百万次了 但我对 ASP Net MVC 以及一般的 ASP NET 仍然是新手 所以很抱歉 如果这有点明显 好的 我有一个控制器将数据发送到两个视图 一个视图仅列出数据库中的数据 而另一个视图允许您分别编辑和添加记录
  • MySQL中如何设计类别和子类别?

    我有一个类别列表以及与每个类别关联的子类别数量 假设类别表称为 Cat 那么其中有热类别和冷类别 我有另一个名为 subcats 的表 然后我有以下内容 Cat ID Name 1 Hot 2 Cold SubCats SubCatID C
  • 计算用户给出的字符串中的唯一字符

    我必须编写一个程序来计算用户给出的字符串中的唯一字符 例如 abc 返回3 aabbccd 返回4 我不允许使用高级Java类 如Map Set等 我只能使用数组 字符串 for循环 while循环 if语句 我正在尝试使用嵌套循环 但对如
  • MQTT 客户端订阅 PostgreSQL 数据库更改

    我有一个定期更新的 PostgreSQL 数据库 并且想要将最新更改发布到 mosquitto 代理 执行此方法最优雅的方法是什么 好吧 这个想法很有趣 我正在使用 PostgreSQL 9 5 如果我在控制台中输入 CREATE LANG
  • 如何删除 NodeReference 字段中的节点 ID [nid:n]

    这是此链接的同一问题 删除节点引用自动完成中的 nid n https stackoverflow com questions 1515722 removing nidn in nodereference autocomplete 根据第一
  • 一个变量仅由一个线程读取,由另一个线程读取和写入,是否需要同步?

    Motive 我刚刚学习多线程的基础知识 还没有完成它们 但我想在学习之旅的早期提出一个问题 以引导我了解与我正在从事的项目最相关的主题 Main A 如果一个进程有两个线程 一个编辑一组变量 另一个只读取所述变量 从不编辑它们的值 那么我
  • azure 删除从我的应用程序服务返回的 Access-Control-Allow-Origin 标头

    我有两个服务在 Azure 上运行 a 网络服务 角度应用程序 expressjs an 应用服务 ASPNET核心应用程序 All the 网络服务所做的是查询应用服务对于以下端点 my app service azurewebsites
  • 将初始音量设置为手机铃声音量

    我试图做到这一点 以便当用户打开应用程序时 它将音乐的音量设置为手机铃声的音量 到目前为止 这是我的代码 但我不太确定 setVolume float float 上的参数是什么 android 文档没有很好地解释它 我的代码在这里做错了什
  • texture2D().r 和texture2D().a 是什么意思?

    我在用OpenGL ES在Android编程中 当我在着色器中将YUV NV21 转换为RGB时 例如 vec3 yuv vec3 texture2D u TextureY vTextureCoord r 0 0625 texture2D
  • 我们如何使用 ucrop 库自定义裁剪图像活动

    我正在使用一个 implementation com github yalantis ucrop 2 2 2 用于裁剪目的的库 谁能告诉我们如何编辑上面的设计 我们可以为此进行定制设计 UI 吗 因为上面的UI是从图库中选择图片时默认的 l
  • IE11 编辑值时将光标移动到输入开头

    我在一个项目上遇到了一个非常奇怪的问题 长话短说 我有记录利率的输入字段 因此在模糊时附加 并在焦点时删除 它在除 IE11 之外的所有浏览器上都能正常工作 由于某种原因 它将光标移动到输入的开头 这对于人们快速浏览并输入值来说很烦人 这是
  • Nodejs 中哈希字符串的网络安全编码

    我正在 Nodejs 中创建一个重定向器 我有一些价值观 比如 用户id 超级用户id 我想对这些进行哈希处理 以防止用户检索 url 并伪造其他人的 url 并进行 base64 编码以最小化创建的 url 的长度 http myurl
  • Soundcloud API 未通过 Python 返回播放列表中的所有曲目

    我最近开始使用 Soundcloud API 开发一个简单的应用程序 用于保存播放列表中的数据 然而 在我看来 并非播放列表中的所有曲目都会被返回 我正在使用以下代码 import soundcloud shelve time client
  • 如何获取折线图中的所有json值

    我有很多 Json 值 我将使用它们创建一个折线图 但它在图表中只显示一个值 我是 javascript 的新手 有一个想法在图表中绘制所有值 请任何人给出这个问题的 jsfiddle 示例 HTML代码 div class chart S