我会尽量保持这一点。我有一个CSV,其中包含特定街道的流量计数。到目前为止,我已经在(x)轴上绘制了街道名称,并在(y)轴上绘制了总流量计数。 CSV还包含旅行车辆的计数(<15分钟,15-30分钟,30-45分钟,60分钟等)。
我要做的是按照(&lt; 15,15-30等)分钟计数“分割”每条街道的总数,类似于类别。基本上,我试图复制这个例子: http://dimplejs.org/examples_viewer.html?id=bars_vertical_grouped_stacked其中“所有者”类别是我的数据集中的“动脉”类别。
简而言之: 1.我可以半成功地分割一些街道名称,但是,有些似乎根本没有拆分,即使这些类别存在计数。
工具提示未显示特定于类别的计数。它似乎将所有计数推到一个工具提示中,而不管是否悬停在一个类别上。
对于图例,有没有办法确保它使用街道名称?如果我删除“Commute”值并保留“Arterial”,它会正确使用名称,但之后我将失去显示类别的能力。
我希望这不会太混乱。我真诚地感谢任何帮助。
CODE: var svg = dimple.newSvg(&#34; #chartContainer&#34;,1280,720);
d3.csv("../HTML/strippedData_v2.csv", function (data) {
var myChart = new dimple.chart(svg, data);
myChart.setBounds(60, 45, 510, 315)
myChart.addCategoryAxis("x", ["Arterial"]);
myChart.addMeasureAxis("y", "Total");
myChart.addSeries(["Arterial", "Commute15", "Commute1530", "Commute3045", "Commute4560", "Commute60"], dimple.plot.bar);
myChart.addLegend(200, 10, 380, 20, "right");
myChart.draw();
});
图片:(没有足够的代表:/)
(仅适用于图库的前3张图片。) http://imgur.com/a/8P2tN#0
答案 0 :(得分:1)
我正在努力弄清楚你想要图表的样子。我怀疑问题可能是CommuteXX字段。听起来您正试图将它们视为维度值,而凹坑将列视为维度(并将其行值视为维度值)。因此,您需要重新组织您的数据:
Arterial |Commute |Population
Colfax Avenue |Commute15 |1380
Colfax Avenue |Commute1530 |1641
Colfax Avenue |Commute3045 |855
Etc...
加载CSV后,可以在Javascript中完成此操作。这是一个功能:
function unPivot(sourceData, valueFields, newCategoryField, newValueField) {
var returnData = [],
newRow,
key,
i,
j;
for (i = 0; i < sourceData.length; i += 1) {
for (j = 0; j < valueFields.length; j += 1) {
newRow = {}
for (key in sourceData[i]) {
if (sourceData[i].hasOwnProperty(key) && valueFields.indexOf(key === -1)) {
newRow[key] = sourceData[i][key];
}
}
newRow[newCategoryField] = valueFields[j];
newRow[newValueField] = sourceData[i][valueFields[j]];
returnData.push(newRow);
}
}
return returnData;
};
这里有一个小提琴:http://jsfiddle.net/GeLng/15/
我不确定这是否是您正在寻找的图表,您提到了一个分组栏,但我不确定您想要分组。希望这会让你足够按照自己的方式创建图表。