javascript - C3 条形图 - 自定义 X 轴标签
问题描述
我在我的应用程序中使用 C3 图表库进行数据可视化。我试图用 x,y 值绘制条形图。图表显示正常,但 x 轴刻度值未显示在我的图表中。但是在图例部分也显示得很好。我尝试了很多方法,但没有运气。请帮助我实现这一目标。
var chart = c3.generate({
/* size: {
height: 400
}, */
bindto:"#chart",
data: {
json: [{"<-10":0,"<-8":0,"<-6":3,"<-4":1,"<-2":15,"<0":40,"<2":82,"<4":68,"<6":7,"<8":6,"<10":3,">10":1}],
keys: {
value: ["<-10","<-8","<-6","<-4","<-2","<0","<2","<4","<6","<8","<10",">10"],
},
type: 'bar'
},
bar: {
ratio: 1.5
},
color: {//referred color code from materializecss color palette
// pattern: ['#f44336', '#ef5350', '#e57373', '#ef9a9a', '#ffcdd2', '#ffebee', '#c8e6c9', '#a5d6a7', '#81c784', '#4caf50', '#388e3c', '#1b5e20']
pattern: ['#ffebee', '#ffcdd2', '#ef9a9a', '#e57373', '#ef5350', '#f44336', '#1b5e20', '#388e3c', '#4caf50', '#81c784', '#a5d6a7', '#c8e6c9']
},
tooltip: {
format: {
title: function (d) { return 'Test'; },
value: function (value, ratio, id) {
return value;
}
}
}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/c3/0.3.0/c3.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/c3/0.3.0/c3.min.js"></script>
<div id="chart"></div>
解决方案
您将 JSON 数据作为一个具有许多属性的对象而不是一组谨慎的对象来提供。我通过引入 'label' 和 'val' 属性将数据有效地转换为 name = value 对。这为您提供了使用更多 C3 功能的好处。
var chart = c3.generate({
size: {
height: 200,
width: 600
},
bindto:"#chart",
data: {
json: [{label: "<-10", val:0},{label: "<-8",val:0},{label: "<-6",val:3},{label: "<-4",val:1},{label: "<-2",val:15},{label: "<0",val:40},{label: "<2",val:82},{label: "<4",val:68},{label: "<6",val:7},{label: "<8",val:6},{label: "<10",val:3},{label: ">10",val:1}],
keys: {
x: 'label',
value: ["val"],
},
type: 'bar',
color: function(color, d){
var lst = ['#ffebee', '#ffcdd2', '#ef9a9a', '#e57373', '#ef5350', '#f44336', '#1b5e20', '#388e3c', '#4caf50', '#81c784', '#a5d6a7', '#c8e6c9']
return(lst[d.index]);
}
},
legend: {
show: false
},
axis: {
x: {
type: 'category',
tick: { centered: true},
}
},
bar: {
width: {
ratio: 1
}
},
tooltip: {
format: {
title: function (d) { return 'Test'; },
value: function (value, ratio, id) {
return value;
}
}
}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/c3/0.3.0/c3.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/c3/0.3.0/c3.min.js"></script>
<div id="chart"></div>
推荐阅读
- amazon-web-services - CMK Key1 在轮换/过期/删除时会发生什么情况?如果我们为该 CMK Key1 使用 CMK 别名:跨账户甚至相同账户引用?
- java - 如何在 M1 MacBook Air 上打开 TerraER2.23.jar
- java - 如何从excel中获取已自动转换为PNG的SVG图片数据
- java - Java获取Icon中像素的RGB值
- rest - 是否有与 Set-Mailbox 和 Add-MailboxPermission powershell 命令等效的 REST(图形或其他)?
- c# - 如何从从 IoTHub 路由的事件中心事件读数订阅不同的遥测数据
- netsuite - SuiteScript 2.1 记录更新太慢
- scala - 在 IntelliJ IDEA 中导入 Scala3 SDK
- python - 键入提示并获取文档信息
- php - 替换文件PHP中的行范围