(我知道有关于数据可视化的帖子,但没有一个完全回答我的问题。)
我正在寻找一种从数据生成图表的工具。我想要能够为我做一些计算的工具,不仅可以很好地显示数据。
例如,这里是我运行的测试数据:
{
"destination" : "30be317c-e586-4448-8fed-1a9481710670",
"source" : "30be317c-e586-4448-8fed-1a9481710670",
"userStatus" : "UNDEF",
"testName" : "VolumeUp",
"testStatus" : "WORKED",
"testStart" : 1323378809108,
"testEnd" : 1323378809108
}, {
"destination" : "30be317c-e586-4448-8fed-1a9481710670",
"source" : "30be317c-e586-4448-8fed-1a9481710670",
"userStatus" : "FAILED",
"testName" : "VolumeDown",
"testStatus" : "FAILED",
"testStart" : 1323378814065,
"testEnd" : 1323378816077
}
请注意,这当前是JSON,但我可以将其转换为XML或在需要时将其推送到数据库。
我想要的是一种告诉工具的方法:
创建一个表格:
"testStatus" : "WORKED"
"testStatus" : "FAILED"
"testName"
计算仍然非常基础。 我做了一些研究并找到了可以做到这一点的工具(JasperReport,SpagoBI,RapidMiner)但是所有这些工具似乎都太难以产生像我这样的简单报告了。
是否有可以帮助我做到这一点的工具/框架? 或者我是否必须自己进行计算并使用Google Visualization API等工具来显示输出?
由于
答案 0 :(得分:1)
我不确定是否理解正确。
我知道你有一些json格式的数据。您可以将此数据转换为xml或加载到数据库。您需要使用特殊计算和/或条件格式化来显示此数据。
您可以使用的第一个工具是Excel。您可以使用Excel的内置函数来处理和可视化您的数据。我相信Excel足以满足您的要求。
如果您要设计包含数据的多维数据集,则有2个选项。首先,您可以在多维数据集级别进行这些计算,也可以使用用于可视化数据的工具的功能。
如果您设计了一个立方体,您也可以使用Excel。但是如果你需要一个更高级的工具,我的第一个建议是TARGIT,因为它易于使用。您还可以使用QlikView或Tableau。对于更高级的解决方案,您可以使用Microsoft的SharePoint或OBIEE。
答案 1 :(得分:0)
我会看一下像Sencha(ext-JS)这样的JavaScript库。
查看他们的文档:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.grid.Panel
您可以使用json格式定义包含数据的商店。您可以根据每条记录的值向商店添加字段。如果您需要将此值相对于所有其他值作为百分位数,则可以收听“加载”事件并遍历记录以计算此“高”/“低”值。
Ext.create('Ext.data.Store', {
storeId:'myStore',
fields:['destination', 'source', 'testName', 'testStatus', 'testStart', 'testEnd'],
data:{'items':[
// ... your data here
]},
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'items'
}
}
});
然后,您可以使用任何内置视图创建数据的网格视图。您可以定义将使用计算值添加类的渲染器。使用简单的CSS,您可以使用不同的颜色为每个类着色。
Ext.create('Ext.grid.Panel', {
title: 'My Data',
store: Ext.data.StoreManager.lookup('myStore'),
columns: [
{ header: 'Test Name', dataIndex: 'testName' },
{ header: 'Value',
dataIndex: 'calculatedValue',
renderer: function(value) {
return Ext.String.format('<span class="{0}">{1}</span>', value, value);
}
},
// Other columns
],
height: 200,
width: 400,
renderTo: Ext.getBody()
});
答案 2 :(得分:0)