作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 DC.js 创建一个柱形图如下图:
我的数据是这样的:
var data =[
{name:'Venezuela',sale:300},
{name:'Saudi',sale:253},
{name:'Canada',sale:150},
{name:'Iran',sale:125},
{name:'Russia',sale:110},
{name:'UAE',sale:90},
{name:'US',sale:40},
{name'China',sale:37}
]
我尝试创建但我不知道到底发生了什么。我不知道如何绘制 x 轴或 y 轴。我搜索并找到一些示例,但在该示例中所有 x 轴都是时间唯一它使用 .x(d3.time.scale()
但我的 x 轴不是时间,我不知道如何控制它。
更新
给图表添加颜色
var colorScale = d3.scale.ordinal().range(['#DB0A5B','#F62459','#F1A9A0','#2C3E50','#26A65B','#E87E04','#D35400']);
chart.colors(d3.scale.ordinal().range(colorScale);
最佳答案
这是一个帮助您入门的快速示例:http://jsfiddle.net/djmartin_umich/s9c84/
chart
.height(300)
.width(800)
.dimension(countryDimension)
.group(countryGroup)
正如 Gordon 所说,您需要设置一个序数标度:
.x(d3.scale.ordinal().domain(countries))
.xUnits(dc.units.ordinal)
以下是管理轴标签的方法:
.xAxisLabel("MMbbl = one million barrels")
.yAxisLabel("Reserves (MMbbl)")
.elasticY(true)
.xAxis().ticks(3);
这会让你得到这样的图表:
就像 Gordon 提到的,您将需要使用 renderlet 来控制那里的颜色。使用以下代码更新示例 fiddle :
chart
.renderlet(function(chart){
debugger;
var colors = d3.scale.ordinal().domain(countries)
.range(["steelblue", "brown", "red", "green", "yellow", "grey", "blue", "black"]);
chart.selectAll('rect.bar').each(function(d){
d3.select(this).attr("style", "fill: " + colors(d.data.key));
});
关于javascript - 使用 DC.js 创建柱形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24794967/
我想 reshape pandas 数据框, 我有这种格式的 csv 文件 #Result;ID;Date;Events;type 12;1240422;10/01/2017 10:10;1;Item
我有一个现有的 Highcharts ,我需要在其上突出显示单个列。 这是一个已经存在了一段时间的百分位图,我对 Highcharts 仍然很陌生,但我在这里看到了一个类似的问题,这个问题虽然涉及堆叠
我有一个多系列柱形图(在本例中为 3 个)。我想在所有系列的列上覆盖一条线。所以我用相同的列系列数据创建了另外 3 个 Line 系列。当只有一列和一行系列时,这非常有效。对于多个系列,线条呈现在类别
我是一名优秀的程序员,十分优秀!