所以我试图做一个程序,将采取一个csv文件,并生成一个谷歌图表,它处理列出当前的虚拟机,然后多少内存在gb他们已经使用vs多少是免费的。我是javascript的新手,花了我大部分的工作日试图得到这个垃圾,所以任何帮助是高度赞赏的!所以目前我使用的是jquery.csv-0.71扩展。为了给你一个csv的示例,我将在这里粘贴一些:
"Name","UsedSpace","Capacity"
"GVLVNX00","378","500"
"GVLVNX01","421","500"
"GVLVNX02","351","500"
"GVLVNX04","421","500"
"GVLVNX05","283","500"
有了这个示例和我的助手jquery csv文件的知识,现在在这里出了什么问题。我敢肯定有很多,一个错误我得到的是有关水平数据不能是一个字符串?这没有意义,我希望虚拟机名称在x轴上derp:/…除此之外,这里是代码。我的目标是做出一个有重叠条的图,我知道这个没有,但至少是一个开始。我甚至找不到任何有条重叠的,就像我想显示空闲和使用的内存,但如果你找到一个更适合的图表,请告诉我代码来完成它:)。所以这里是我的html/javascript部分,有些可能会被注释掉等,因为我得到一个错误或调试。抱歉,如果你读了那么多,我有点跑题了。
<!DOCTYPE html>
<html>
<head>
<title>Google Chart Example</title>
<script src="https://www.google.com/jsapi"></script>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script src="jquery.csv-0.71.js"></script>
<script>
// load the visualization library from Google and set a listener
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
// grab the CSV
$.get("DBdatastores.csv", function(csvString) {
// transform the CSV string into an array
var arrayData = $.csv.toArrays(csvString);
// this new DataTable object holds all the data
var data = new google.visualization.arrayToDataTable(arrayData);
var options = {
title: 'Virtual Machine Storage(GB)',
hAxis: {title: "Virtual Machine Names", titleTextStyle: {color: 'red'}}
// vAxis: {title: "Memory In GB", minValue: 0, maxValue: data.getColumnRange(2).max}
};
var chart = new google.visualization.ColumnChart(document.getElementById('chart'));
chart.draw(data, options);
});
}
</script>
</head>
<body>
<div id="chart">
</div>
</body>
</html>
谢谢你的帮助,如果有人知道如何做这种废话,我是一个php/mysql开发这是不是我理想的任务,哈哈。
问题可能在两个地方之一:要么在您的CSV文件中,要么在jQuery CSV插件中。您的"UsedSpace"one_answers"Capacity"数据系列被解释为"字符串"类型,这是无效的,以绘制图表-它们必须是"数字"类型。我建议的第一件事是删除CSV中数字周围的引号:
"Name","UsedSpace","Capacity"
"GVLVNX00",378,500
"GVLVNX01",421,500
"GVLVNX02",351,500
"GVLVNX04",421,500
"GVLVNX05",283,500
然后你需要告诉jQuery CSV插件在可能的情况下将你的数据解析为数字:
var arrayData = $.csv.toArrays(csvString, {
onParseValue: $.csv.hooks.castToScalar
});