“scales”选项似乎破坏了 Chart.js 图表

2024-02-11

我正在尝试使用 Chart.js 在我的 django 项目中包含一些股票数据的折线图。我可以用我想要的数据渲染一个简单的图表,但是当我尝试格式化 x 轴的日期和时间时,图表不再渲染。这是该文件的工作版本 (client_small_market_view.html):

{% load static %}

<script src="https://cdn.jsdelivr.net/npm/[email protected] /cdn-cgi/l/email-protection/dist/Chart.min.js"></script>
<div id="container" class="chartjs-wrapper">
    <canvas id="stock-chart" class="chartjs" style="display: block;"></canvas>
</div>

<script>
    var dateFormat = 'YYYY-MM-DD';

    // the dates come ins as a list of strings formatted YYYY-MM-DD, so I use this function here to 
    // convert to Date
    function parseDate(date){
        var parts = date.split("-");
        return new Date(parts[0], parts[1] - 1, parts[2])
    };

    var config = {
        type: "line",
        data: {
            labels: {{ market_data.1|safe }}.map(dateString =>parseDate(dateString)),
            datasets: [
                {
                    label: "{{ market_data.0.0.0|safe }}",
                    data: {{ market_data.0.1.0|safe }},
                    fill: false,
                },
            ],
        },
        options:{
            title:{
                text: 'Market',
                display: true
            },
        }
    };

    var ctx = document.getElementById('stock-chart');
    var chart = new Chart(ctx, config);

</script>

这是它在我这边生成的图表。

但是,添加“scales”选项来格式化 x 轴标签,如下所示

{% load static %}

<script src="https://cdn.jsdelivr.net/npm/[email protected] /cdn-cgi/l/email-protection/dist/Chart.min.js"></script>
<div id="container" class="chartjs-wrapper">
    <canvas id="stock-chart" class="chartjs" style="display: block;"></canvas>
</div>

<script>
    var dateFormat = 'YYYY-MM-DD';

    function parseDate(date){
        var parts = date.split("-");
        return new Date(parts[0], parts[1] - 1, parts[2])
    };

    var config = {
        type: "line",
        data: {
            labels: {{ market_data.1|safe }}.map(dateString =>parseDate(dateString)),
            datasets: [
                {
                    label: "{{ market_data.0.0.0|safe }}",
                    data: {{ market_data.0.1.0|safe }},
                    fill: false,
                },
            ],
        },
        options: {
            title:{
                text: 'Market',
                display: true
            }
            // when I take 'scales' out the chart renders fine,
            // but I need it to format the x-axis dates
            scales: {
                xAxes: [{
                    type: 'time',
                    time: {
                        parser: 'YYYY-MM-DD',
                        unit: 'day',
                        displayFormats: {
                            'day': 'YYYY-MM-DD'
                        }
                    },
                    ticks: {
                        source: 'data'
                    }
                }]                    
            }
        }
    };

    var ctx = document.getElementById('stock-chart');
    var chart = new Chart(ctx, config);

</script>

给我留下了一张空白的画布。我花了几个小时试图找出问题所在,但无法弄清楚。作为参考,此 html 文档包含在用作应用程序主页的父文档中:

{% include './client_navbar.html'%}
{% include './client_small_market_view.html' with market_data=market_data%}
{% include './client_portfolios_summary_view.html' with portfolioss=portfolios %}

另外我还使用Bootstrap 4.4.1,但我无法想象这就是问题的原因。任何提示将非常感谢!


这似乎对我有用。您是否检查过浏览器以确保没有抛出任何阻止​​图表显示的 JS 异常?

具体来说,我相信您需要包括矩模块(https://momentjs.com/ https://momentjs.com/)以便使用

type: 'time'

如果模块由于某种原因未加载,它可能会抛出异常并给您一个空白图表。

这是描述类似问题的另一个参考:ChartJS 不使用 Moment.js 显示时间数据 https://stackoverflow.com/questions/58700638/chartjs-not-displaying-time-data-using-moment-js

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

“scales”选项似乎破坏了 Chart.js 图表 的相关文章

  • Angular 7 Guard 重定向仅适用于双击

    问题是我已经实现了一个 Guard 旨在处理特定的目录 如果当前用户名的角色等于 2 它应该返回 true 如果没有 那么它不应该重定向 这是我的 app routing module ts 文件 问题出在 userlist 路径中 我们是
  • Javascript 根据字段值任意排序数组

    所以我有一个对象数组 如下所示 var myArray priority low priority critical priority high 我需要以这种方式排序 1 关键 2 高和3 低 如何才能做到这一点 我建议使用一个对象来存储排
  • contenteditable 在 safari 中不起作用,但在 chrome 中起作用

    我有一个奇怪的问题 这在 chrome 中按预期工作 但在 safari 中它只会发光 但不会对按键输入做出反应 这是触发文本版本的方法 var namebloc event currentTarget find column filena
  • 如何正确关闭 Node.js Express 服务器?

    我需要在收到回调后关闭服务器 auth github callback网址 与平常一样HTTP API http nodejs org docs latest api http html关闭 服务器目前支持server close call
  • Bootstrap 3 - 使用垂直滚动条水平拖动元素,overflow-y:滚动

    在我的失败之后上一篇文章 https stackoverflow com questions 23586926 bootstrap grid with scrollable affixed column noredirect 1 comme
  • JQuery _renderItem 没有被调用

    我正在尝试使用 renderItem 函数创建自定义 ui menu item 元素 但经过可能尝试后 我什至无法调用该函数 自动完成功能正在工作 但就像 renderItem 函数不存在一样 这是我的脚本部分
  • 从 UnityWebGL jslib 返回字符串

    我想使用 jslib 来获取网址参数 像这样的代码 jslib GetUrl function var s var strUrl window location search var getSearch strUrl split var g
  • jQuery live() 和ready() 之间的区别?

    两者之间的确切区别是什么live and ready 编辑 发现die http docs jquery com Events die是相反的live ready http docs jquery com Events ready让你注册一
  • jQuery 面板滑块通过单击按钮打开但不会关闭

    我的页面上有一个按钮 可以使用 jquery 和 Modernizr 框架打开右侧面板 按钮位于屏幕最右侧 单击时 它会向左滑动并打开打开的面板 问题是 再次单击时它不会滑回到原来的位置 HTML div class cd panel fr
  • Flot 0.8.2 折线图 - 颜色错误

    我正在使用 Flot 折线图并设置它们的颜色 我发现了一个奇怪的错误 在前 3 种颜色之后 绘图对所有其他线条使用最后一种颜色 这不是正确的行为 更有趣的是图例显示了正确的颜色 这是一个已知的错误 var dataSet label d1
  • IE 中的文件上传按钮和奇怪的文本光标行为

    我构建了一个上传按钮 其格式类似于典型的 html 按钮 而不是浏览器标准文件上传表单 该方法是设置锚元素的样式并在顶部覆盖透明文件输入元素 这种方法在除 IE 之外的所有浏览器中都可以正常工作 在 IE 中 当用户单击上传按钮时 会出现一
  • 如何从普通 JavaScript 中的输入获取对象

    例如 我有 3 个输入
  • NodeJS 中的缩进多行日志记录

    我要打印JSON stringify d 反对控制台 将上下文作为 Mocha 测试套件输出的一部分 当测试缩进时 我希望对象日志行向右缩进足够远 例如 3 4 个制表符空格 以便它们可以识别地位于右侧describe group 我怎样才
  • 如何在 Astro 中的组件之间共享状态?

    我相信我在代码中采用了错误的方法 如何在按钮单击中设置客户端首选项 该按钮单击用作全局 astro 组件中的道具 或者我应该怎么做 我知道这是可能的 因为 astro js 本身在他们的文档网站中这样做了 下面是我的尝试的解释 我目前正在开
  • 是否可以从 webpack 中的文件名中删除特殊字符?

    长话短说 我的资产文件名中不能包含某些字符 例如连字符 我没有运气通过解析 webpack 文档来弄清楚是否可以使用正则表达式或类似的东西重命名文件 这样我就可以从我无法控制源文件名的 3rd 方包中删除任何连字符 我的超级天真的例子是这样
  • 如何在javascript中解析 yyyy-MM-dd HH:mm:ss.SSS 格式的日期?

    const time 2016 11 16 00 00 00 000 const date new Date time console info date 似乎 safari 无法解析 yyyy MM dd HH mm ss SSS 格式日
  • 使用重复模式捕获正则表达式

    我试图捕获字符串的所有部分 但我似乎无法正确处理 该字符串具有以下结构 1 22 33 中间有运算符的数字 可以有任意数量的术语 我想要的是 1 22 33 1 22 33 但我得到 1 22 33 22 33 我尝试过各种正则表达式 这是
  • 网页执行回发时如何停止在注册表单上?

    我正在做我的最后一年的项目 其中 我在一页上有登录和注册表单 WebForm 当用户点击锚点时Sign Up下拉菜单ddlType 隐藏 和文本框 txtCustName txtEmail and txtConfirmPassword 显示
  • ES6解构对象赋值函数参数默认值

    您好 我正在查看在传递函数参数时使用对象解构的示例对象解构演示 https developer mozilla org en US docs Web JavaScript Reference Operators Destructuring
  • 如何使 Django 自定义管理命令参数不再需要?

    我正在尝试在 django 中编写自定义管理命令 如下所示 class Command BaseCommand def add arguments self parser parser add argument delay type int

随机推荐

  • 如何在 GDAL ruby​​ 绑定中显式关闭数据集?

    我在用GDAL https gdal org 1 7 1 从ruby1 9生成GeoTIFF文件 在里面tutorial https gdal org tutorials raster api tut html他们建议使用 GDALClos
  • Ubuntu 11.10链接perftools库

    我无法让 Ubuntu 11 10 中的 gcc 正确链接到 google perftools lprofiler 问题似乎是链接器丢弃了程序中未直接使用的库 一个例子会有所帮助 我们称之为 main cpp include
  • Xamarin iOS UIButton 如何以编程方式单击按钮?

    我试图通过在 ViewWillAppear 函数中以编程方式调用按钮来伪造单击按钮的行为 onclick 函数是在我的 ViewDidLoad 中定义的 您可以看到我正在尝试使用执行选择器来手动调用按钮 该按钮似乎没有运行 有任何想法吗 p
  • WebRTC:对多个对等连接使用相同的 SDP?

    是否可以在多个对等连接中使用相同的 SDP 我正在使用 WebRTC 构建视频会议 这个想法是 呼叫者使用某种信令机制 使用其 SDP 每个用户相同的 SDP 向所有其他用户发送广播消息 然后用户将使用其 SDP 进行响应 当用户收到某人的
  • 调整窗口大小时是否可以完全消除闪烁?

    通常 即使使用双缓冲 在调整窗口大小时 似乎也不可避免地会发生闪烁 第1步 原始窗口 第2步 调整窗口大小 但多余的区域尚未绘制 第3步 调整窗口大小 并绘制额外区域 是否有可能以某种方式隐藏步骤 2 我可以暂停调整大小过程 直到绘画操作完
  • 图像,onload 事件在 Chrome 中不起作用

    我正在使用 html5 创建拖放图像上传功能 这在 Firefox 中对我来说非常有用 但在 chrome 中图像 onload 事件仅在第一次触发 如果我只在第一个作品中拖动多个图像 而如果我在其中拖动第二个图像 则会失败 我相信问题出在
  • iTunes Connect:带有特殊字符的应用程序名称(德语“umlaute”)

    今天 我想提交一个新的德语应用程序 应用程序名称中有一个 元音变音 B rse AppStore 中有很多带有特殊字符 Di t F hrerschein 等的应用程序 当我输入应用程序名称时 JavaScript onBlur 事件会将名
  • Java中如何设置语言?

    我正在使用带有外国操作系统 韩语 日语等 的Java程序 FileChooser等swing组件的显示是外语 我需要将其更改为英文 java util Locale setDefault java util Locale ENGLISH J
  • Noop for Swift 详尽的 Switch 语句

    Swift 需要详尽的 switch 语句 并且每种情况都有可执行代码 switch 中的 case 标签应至少有一个可执行语句 有没有人找到了一种好方法来处理您实际上不想做任何事情的情况 我可以在那里放一个 println 但这感觉很脏
  • Java EE 7 和 Java EE 6 之间的区别 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Java EE 7 和 Java EE 6 之间的主要区别是什么 如果您必须向另一位开发人员解释主要差异 你会怎么做 就问题而言 我真
  • 用“/”字符修补 kubernetes 标签

    我有以下代码 https stackoverflow com questions 57310483 whats the shortest way to add a label to a pod using the kubernetes go
  • 更改 Laravel 中的控制器模型模板

    我想知道是否有任何方法可以更改控制器和模型的基本模板laravel5 4 我的意思是当我跑步时 php artisan make controller ControllerName resource 它会生成这个
  • Matlab 中的布尔矩阵乘法

    Matlab 有布尔 有时称为逻辑或二进制 矩阵乘法函数吗 我具体讨论的是通常用带有点的圆圈表示的内容 以表示布尔矩阵乘法 cij ai1 b1j ai2 b2j ai3 b3j aik bkj 我很难找到一个 现在假设它不存在 如果是这种
  • 存储登录的用户详细信息

    创建 Web 应用程序时 假设您有一个表示单个用户的 User 对象 您认为存储用户已登录的最佳方式是什么 我考虑过的两种方法是 将用户数据库 ID 存储在会话变量中 将整个用户对象存储在会话变量中 有更好的建议吗 使用上述方法有什么问题吗
  • 大型 RSS 阅读器如何工作(netvibes、Google 阅读器...)

    我想知道像 Google Reader Logline technorati 这样的 Web 应用程序是如何工作的 以及它们遵循哪些技术使用 cron 作业一次性解析数百万个 RSS 提要 有一个lot不同的技术 最糟糕 的技术就是您所描述
  • jQuery 悬停动画多次触发

    我试图找出为什么我的悬停功能表现得很奇怪 当您将鼠标悬停在一个 div 上时 另一个 div 将变得可见 但是 当我将光标向下移动到可见的 div 时 它会淡出并再次淡入 这种情况不应该发生 并且应该保持可见 直到我的光标离开主容器 这是我
  • CSS问题Ngx-table angular2泳道

    我目前在获取 ngx datatable 以获得正确的 CSS 时遇到问题 我的 css 文件中有这个来导入正确的 css import swimlane ngx datatable release index css import swi
  • 如何比较 iOS 和 Android 中的加速度计值

    我在 iOS 中获取加速度计值如下 if motionManager accelerometerAvailable NSLog Accelerometer avaliable motionManager startAccelerometer
  • XPath - “not”和“!=”之间的区别

    只是一个简单的问题 关于以下内容中 xpath 的 not 和 之间的区别 获取 XML
  • “scales”选项似乎破坏了 Chart.js 图表

    我正在尝试使用 Chart js 在我的 django 项目中包含一些股票数据的折线图 我可以用我想要的数据渲染一个简单的图表 但是当我尝试格式化 x 轴的日期和时间时 图表不再渲染 这是该文件的工作版本 client small mark