当前位置: 首页 > 知识库问答 >
问题:

动态创建的图表。js图表基于x轴的人口过多时间?

应翰飞
2023-03-14

我想创建一个chart.js折线图,y轴为数值,x轴为日期。然而,当我填充图表时,x轴上充满了不应该包含的刻度(您可以看到我的数据被移动到最右边)。当我登录< code>chart.data.labels时,一切似乎都是正确的;这是输出:< code> Array(3) ["10/23/2020,12:00:00 AM "," 10/27/2020,12:00:00 AM "," 10/28/2020,12:00:00 AM"]。

当我注释掉时间xAxes[0]时。类型=时间xAxes。时间按预期加载数据,但所有标签都堆叠在x轴的左角。我不确定如何继续使图表仅显示日期标签。我在下面包含了我的代码

    var chart = new Chart(document.getElementById("grade-chart"), {
        type: 'line',
        options: {
            legend: {display: true},
            title: {
                display: true,
                text: 'Project Grading'
            },
            scales: {
                xAxes: [{
                    type: 'time',
                    distribution: 'linear',
                    scaleLabel: {
                        display: true,
                        labelString: 'Date Surveyed'
                    },
                    time: {
                        unit: 'month',
                        bounds: 'data',
                        minUnit: 'day',
                        ticks: {
                            source: 'labels'
                        }
                    },
                }],
                yAxes: [{
                    scaleLabel: {
                        display: true,
                        labelString: 'Scores'
                    },
                    ticks: {
                        beginAtZero: true,
                        max: 100
                    }
                }]
            },
        }
    });

    $.ajax({
        method: 'get',
        url: '/admin/project/project_grade_detail_chart/project_id/' + $("#project-id").val(),
        dataType: 'json',
        success: function(json){
            var dates = json['dates'].map(v => new Date(v).toLocaleString())
            chart.data.labels.push(dates);
            Object.keys(json).forEach(function(name) {
                if(name != 'dates') {
                    chart.data.datasets.push({
                        data: json[name].map((value, i) => ({'t': dates[i], 'y': value})),
                        label: name,
                        borderColor: randColor(),
                        fill: false
                    });
                }
            });
            chart.update(0);
            console.log(chart.data.labels)
        }
    });

编辑:我尝试添加了<code>autoskip

共有1个答案

路和悌
2023-03-14

该问题是由于选项<code>滴答声造成的。源:“标签”定义在x轴上。您应该将其更改为<code>ticks。源代码:'data'或者干脆省略它并让图表。js选择最佳选项。

此外,当使用ty属性将数据作为数据点提供时,无需定义chart.data.labels

success: function(json){
  var dates = json['dates'].map(v => new Date(v).toLocaleString())
  chart.data.labels.push(dates); // remove this line
  ...
 类似资料:
  • 我看过很多关于如何在chart.js中添加数据的教程,但都是针对单个图表的。 我使用chartjs创建多个图表(每个图表都有自己的画布和唯一的ID)。例如:图表1位于id=“c1”的画布中,图表2位于id=“c2”的画布中。如何选择图表1并添加新数据?

  • 1选择一个图表工具。您最初使用的工具确定了 Illustrator 生成的图表类型;然而,您可以于日后方便地更改图表的类型。 2按照以下任何一种方式定义图表的尺寸: 从您希望图表开始的角沿对角线向另一个角拖动。按住 Alt 键 (Windows) 或 Option 键 (Mac OS) 拖移可从中心绘制。按住 Shift 键可将图表限制为一个正方形。 单击您要创建图表的位置。输入图表的宽度和高度,

  • 我正在学习如何使用图表.js并且我想要一个图表,该图形以格式为“h?h:mm”在一天中的不同时间(x轴)显示随机值。 在 x 轴中,我想要一个小时的固定步骤,从上午 12 点 (0:00) 开始,到上午 8 点(8:00)结束。 和数据,例如(x=4:45,y=67)在te对应的x刻度(4:00和5:00之间的3/4) 我尝试了以下方法: 但这不是我想要的,因为 X 轴刻度线取标签的值(x 数据)

  • 问题内容: 在尝试与matplotlib斗争比我想承认的更长的时间之后,我尝试在我使用过的几乎所有其他绘图库中轻而易举地做些事情,之后,我决定向Stackiverse寻求一些见识。简而言之,我需要创建多个水平条形图,它们全部共享x轴,在y轴上具有不同数量的值,并且所有条形具有相同的高度,而图表本身可以调整为条目。我需要绘制的简化数据结构如下所示: 结果,最接近我想要使用的是: 无论有多少个条目具有

  • 我刚到姜戈。我目前正在通过推特应用编程接口对实时用户推文进行情感分析。我已经设法做了分析和表达情感。现在,我想在我的Django应用程序中使用图表(也许是条形图或饼图)来可视化情感,但我不确定如何实现。 我在考虑使用图表。js使其具有响应性,但大多数示例都使用静态数据,因此我没有成功地将从Twitter API提取的数据与图表集成。js。 这是我的网页截图。这张表格是摘录的推特及其相应的情感。然而

  • 我有一张有两个标签的工作表。一个选项卡我有一个值的主列表。在第二张表中,A、B和C列具有固定的下拉验证。如何设置第二张工作表,使D列中的数据验证基于A、B和C列是动态的? 我曾尝试编写一个应用程序脚本,查看列A、B和C的值,创建一个适当值的数组,然后动态创建验证,但未能找到一种逐行运行的方法。 以前有没有人做过这项工作,或者有没有人能想出一种方法来做?