php - Chart JS 堆叠标签而不是使它们水平
问题描述
将数组对象传递给 ChartJS 的标签。我正在将一个数组从 PHP 传递给 ChartJS。这些值应该形成图表的水平标签,但它只是相互堆叠显示。我该如何解决?
var answers = <?php echo json_encode($answerArray); ?>;
var countList = <?php echo json_encode($countList); ?>;
console.log(answers);
var areaChartData = {
labels : [answers],
datasets: [
{
label : 'Digital Goods',
backgroundColor : 'rgba(60,141,188,0.9)',
borderColor : 'rgba(60,141,188,0.8)',
pointRadius : false,
pointColor : '#3b8bba',
pointStrokeColor : 'rgba(60,141,188,1)',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgba(60,141,188,1)',
data : [50, 60, 70, 80 , 90]
},
{
label : 'Electronics',
backgroundColor : 'rgba(210, 214, 222, 1)',
borderColor : 'rgba(210, 214, 222, 1)',
pointRadius : false,
pointColor : 'rgba(210, 214, 222, 1)',
pointStrokeColor : '#c1c7d1',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgba(220,220,220,1)',
data : [50, 60, 70, 80 , 90]
},
{
label : 'Welath',
backgroundColor : 'rgba(210, 214, 222, 1)',
borderColor : 'rgba(210, 214, 222, 1)',
pointRadius : false,
pointColor : 'rgba(210, 214, 222, 1)',
pointStrokeColor : '#c1c7d1',
pointHighlightFill : '#fff',
pointHighlightStroke: 'rgba(220,220,220,1)',
data : [50, 60, 70, 80 , 90]
}
]
}
这是我在图表上得到的结果:
这就是我期望的样子:
解决方案
这种行为来自您的标签数组包含一个数组,该数组包含一个包含所有标签的数组,如下所示:[["label1", "label2", "label3"]]
这适用于多行标签。您需要确保您的标签位于这样的单个数组中:["label1", "label2", "label3"]
然后它将正确呈现。
一个简单的解决方法是替换labels: [answers],
为labels: answers,
推荐阅读
- flutter - 如何获取 sqflite 使用的 db 文件?
- html - 外部 CSS 字体系列未在浏览器中显示
- python - Python - 创建一个检查列表列表中的新元素的函数
- php - 如何从 Lumen 连接到 Firebird 数据库?
- python - 在 Python for 循环中使用 %s
- python - 标签和列表视图未显示在小部件上
- python - 在 Google Colab 上运行 autokeras 图像分类器教程时出错
- swift - macCatalyst 应用程序:如何在不终止应用程序的情况下关闭窗口?
- oracle - Oracle DB with .NET Core Using ODP.Net Provider - 如何设置架构
- javascript - pouchDB 和按日期或日期范围查询