javascript - Chart.js 中的自定义字母数字值?

标签 javascript html web chart.js

我正在尝试使用 Chart.js 制作一个简单的水平条形图。 y 轴上有一些语言(“西类牙语”、“英语”……)及其 CEFR Level (从 A1 到 C2)在 x 轴上而不是某个数字级别(例如 1-10)。

有没有办法让条形图在 x 轴上没有纯数值?

What I'm getting right now

这就是我现在通过这段代码得到的结果:

var spokenLangChart = new Chart(ctx, {
                type: 'horizontalBar',
                data: {
                    labels: ['Spanish', 'English', 'German'],
                    datasets: [{
                        label: 'CEF Level',
                        labels: ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'],
                        data: ['C2', 'C1', 'B1'],
                        backgroundColor: "rgba(255,153,0,0.4)"
                    }]
                },
                options: {
                    scales: {
                        xAxes: [{
                            ticks: {
                                beginAtZero: true
                            }
                        }]
                    }
                }
            });

最佳答案

目前ChartJS不支持直接没有数值的两轴。但是您可以通过回调来完成此操作,如我的示例所示:

var ctx = document.getElementById('chart');

var xLabels = ["A","B","C","D","E","F","G","H","I","J","K"]; //Put here your x labels

var spokenLangChart = new Chart(ctx, {
                type: 'horizontalBar',
                data: {
                    labels: ['Spanish', 'English', 'German'], //Put here your x labels
                    datasets: [{
                        label: 'CEF Level',
                        labels: ['A1', 'A2', 'B1', 'B2', 'C1', 'C2'],
                        data: ['C2', 'C1', 'B1'],
                        backgroundColor: "rgba(255,153,0,0.4)"
                    }]
                },
                options: {
                    scales: {
                        xAxes: [{
                            ticks: {
                                //Returns the x labels
                                callback: function(value, index, values) {
                                    return xLabels[index];
                                }
                            },
                        }]
                    },
                },
                
            });
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<canvas id="chart" width="200" height="100"></canvas>

或者查看JSFiddle .

希望对你有帮助。

关于javascript - Chart.js 中的自定义字母数字值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43375659/

相关文章:

html - 如何在保持响应的同时截断文本

javascript - 当从依赖状态的元素调用时,setState() 不会更改状态以呈现

javascript - 使用 jquery .parent() 选择元素

javascript - extjs 从 json 字符串中选择多选列表

html - 如何最好地制作具有多个页面的 Web 应用程序?

JavaScript 不使用其他 JS 文件中的变量

javascript - 单击其中一个单元格时重置表格单元格颜色

javascript - 如何使用php读取html中标签的id?

php - 字符串处理 Java/html/php

javascript - Wordpress 下拉菜单