javascript - 谷歌可视化百分比问题
问题描述
我无法在 jsfiddle 中重新创建它,所以这就是我所能提供的。我希望有人能与我联系,因为我还是个新手,并且制作此代码的人已经从 covid 去世了。 https://imgur.com/a/4ewvXsC
google.charts.load('current', {packages: ['corechart', 'bar']});
google.charts.setOnLoadCallback();
function load_monthwise_data(pos, title)
{
var temp_title = title + ' '+pos+'';
$.ajax({
url:"fetch.php",
method:"POST",
data:{pos:pos},
dataType:"JSON",
success:function(data)
{
drawMonthwiseChart(data, temp_title);
}
});
function drawMonthwiseChart(chart_data, chart_main_title)
{
var jsonData = chart_data;
var data = new google.visualization.DataTable();
data.addColumn('string', 'Nama Calon');
data.addColumn('number', 'Jumlah Undian');
$.each(jsonData, function(i, jsonData){
var name = jsonData.name;
var total = parseFloat($.trim(jsonData.total));
data.addRows([[name, total]]);
});
var options = {
title:chart_main_title,
hAxis: {
title: "Nama Calon"
},
vAxis: {
title: 'Jumlah Undian',
format: '#%'
}
};
var chart = new google.visualization.ColumnChart(document.getElementById('chart_area'));
chart.draw(data, options);
}
百分比值超过 100% 并且百分比与总值相关
解决方案
提供一些帮助有点困难,但我会努力的。您将在下面找到描述使用 google 虚拟化 api 和一些用例的链接。
这是我的推测,但看起来条形图值正在动态设置条形大小或长度。因此,如果您有大量数据,则该条的大小会分别更大。
function drawMonthwiseChart(chart_data, chart_main_title){
var j = 0;
var jsonData = chart_data;
var data = new google.visualization.DataTable();
data.addColumn('string', 'Nama Calon');
data.addColumn('number', 'Jumlah Undian');
$.each(jsonData, function(i, jsonData){
var name = jsonData.name;
// looks like the issue's coming from here (the total value)
//var total = parseFloat($.trim(jsonData.total));
//data.addRows([[name, total]]);
// Use this, if the total is less than or equal to 100 append data
var total = parseFloat($.trim(jsonData.total));
j += 1; // looks like it's counting the number of instead of percentages
if(j <= 100){
data.addRows([[name, total]]);
}
});
var options = {
title:chart_main_title,
hAxis: {
title: "Nama Calon"
},
vAxis: {
title: 'Jumlah Undian',
format: '#%'
}
};
var chart = new
google.visualization.ColumnChart(document.getElementById('chart_area'));
chart.draw(data, options);
}
UPDATE看起来像是循环,记录(数据)的数量正在设置图表大小。
资源:
推荐阅读
- c# - 可以从 C# 访问在另一个进程中加载的大型数据结构吗?
- python - 如何忽略失败的测试?
- javascript - 如何在fabric js上添加对象到组
- windows - 有没有办法从注册表中找到名称类似于显示名称的 exe 文件
- swift - 添加 UILabel 强制 UICollectionViewCell 缩小宽度
- javascript - 使用 immer.js 更新数组中的一些项目
- html - 为什么尽管http状态为404,图像和图片元素仍显示图像?
- jbpm - 业务流程管理系统抽象
- perl - 如何替换字符串中的非简单变量引用
- ios - addSubview 与呈现模态 ViewController 的区别?