谷歌条形图数据准备——按列分组
Google Bar Chart data preparation -- Group by Column
我正在尝试从下面的数据创建一个谷歌图表。
Year Product Value
2015 A 10
2015 B 20
2016 C 30
2016 D 40
这是正确的数据为我的谷歌图表,使用arrayToDataTable函数,但没有得到所需的输出。我希望Product作为图例,Year作为xAxis值,该值应该定义条形图。由于
每种图表类型都有特定的数据格式,您可以查看
通常,对于大多数图表类型,第一列之后的所有列都应该是一个数字
除非你使用注释、工具提示或其他角色
这样,数据需要看起来类似于…
['Year', 'A', 'B', 'C', 'D'],
['2015', 10, 20, null, null],
['2016', null, null, 30, 40],
请参阅下面的工作代码片段…
google.charts.load('current', {
callback: function () {
var data = google.visualization.arrayToDataTable([
['Year', 'A', 'B', 'C', 'D'],
['2015', 10, 20, null, null],
['2016', null, null, 30, 40],
]);
var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data);
},
packages: ['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
编辑
将SQL server中的数据转换为图表首选的格式,
首先创建一个数据视图,为每个唯一的产品创建计算列
然后使用group()
方法按年份分组,对视图进行聚合
使用聚合数据表绘制图表
请参阅下面的工作代码片段…
google.charts.load('current', {
callback: function () {
// raw table data
var data = google.visualization.arrayToDataTable([
['Year', 'Product', 'Value'],
[2015, 'A', 10],
[2015, 'B', 20],
[2016, 'C', 30],
[2016, 'D', 40]
]);
// format year as string
var formatYear = new google.visualization.NumberFormat({
pattern: '0000'
});
formatYear.format(data, 0);
// create data view
var view = new google.visualization.DataView(data);
// init column arrays
var aggColumns = [];
// use formatted year as first column
var viewColumns = [{
calc: function (dt, row) {
return dt.getFormattedValue(row, 0);
},
label: data.getColumnLabel(0),
type: 'string'
}];
// build view & agg column for each product
data.getDistinctValues(1).forEach(function (product, index) {
// add view column
viewColumns.push({
calc: function (dt, row) {
if (dt.getValue(row, 1) === product) {
return dt.getValue(row, 2);
}
return null;
},
label: product,
type: 'number'
});
// add agg column
aggColumns.push({
aggregation: google.visualization.data.sum,
column: index + 1,
label: product,
type: 'number'
});
});
// set view columns
view.setColumns(viewColumns);
// agg view by year
var group = google.visualization.data.group(
view,
[0],
aggColumns
);
// draw chart
var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(group);
},
packages: ['corechart']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
相关文章:
- 添加新数据时D3.JS条形图列偏移量
- 在条形图中呈现数据AngularJS,如何制作一个好的多条形图
- 对d3堆叠条形图的数据进行排序
- D3:如何更改现有条形图中的数据
- 使用 mysql 数据创建条形图
- 如何使用 json 数据在 d3.js 中创建垂直分组的条形图
- 使条形图根据传入的数据进行调整
- d3.js 中多个分组条形图中的 X,Y 域数据绑定
- Highcharts 单个水平堆叠条形图,始终显示数据名称(标签)和 %-年龄,并在鼠标悬停时显示数据编号和系列名称
- 规范化堆叠条形图绘图问题.无论数据如何,所有矩形均等划分
- 如何筛选数据和填充 D3.js堆积条形图
- 我想通过单击按钮来更新此 d3.js 条形图上的数据.(点击)
- 使用交叉过滤器在 dc js 中对条形图的数据进行分组时遇到问题
- D3堆积条形图添加数据标签并解决D3标签放置问题
- 使用d3更新具有x轴时间线的图表上的各种长度的条形图数据
- Highcharts条形图数据标签位置
- 谷歌条形图数据准备——按列分组
- 测试变量是否正确,并显示条形图数据
- 当从下拉过滤器中选择新源时,JavaScript D3条形图数据将不会更新
- 单堆叠条形图数据设置