- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试获取堆积条形图。下面的示例应该堆叠 2017-W30 的两个值。相反,它在 x 轴上给了我两次 2017-W30。
我在选项中使用 isStacked
但它不起作用。
'options': {
width: '100%',
height: 'auto',
seriesType: 'bars',
isStacked: true
}
旁注:稍后我会尝试让球门线起作用。这就是我使用 'chartType': 'ComboChart',
的原因。
这是我的工作代码:
// Load the Visualization API and the corechart package.
google.charts.load('current', {
'packages': ['corechart', 'table', 'gauge', 'controls']
});
// Set a callback to run when the Google Visualization API is loaded.
google.charts.setOnLoadCallback(gChart0);
function gChart0() {
drawChart();
};
function drawChart() {
var divID_suffixFunction = '_TEMPLATE';
var divID_suffixParameter1 = '';
//var urlString = '../Logs/clnLogsCountingEvents?grade=All&SC=1&CauseSC=3';
//var urlString_temp = 'https://jsonplaceholder.typicode.com/users';
var urlString_temp = 'https://httpbin.org/get'; //source: https://resttesttest.com/
$.ajax({
type: 'GET',
dataType: 'json',
contentType: "application/json",
//url: urlString,
url: urlString_temp,
success: function(result) {
//Manually loaded "result" with JSON that normally comes from "urlString".
result = [{
"prodID": 2,
"calendarWeek": "2017-W29",
"qty": 1,
"goal": 5
},
{
"prodID": 2,
"calendarWeek": "2017-W30",
"qty": 3,
"goal": 5
},
{
"prodID": 1,
"calendarWeek": "2017-W30",
"qty": 2,
"goal": 5
}
];
//Create DataTable
var data = new google.visualization.DataTable();
//Add Columns
data.addColumn('number', 'prodID');
data.addColumn('string', 'calendarWeek');
data.addColumn('number', 'qty');
data.addColumn('number', 'goal');
//Add Rows
var dataArray = [];
$.each(result, function(i, obj) {
dataArray.push([
obj.prodID,
obj.calendarWeek,
obj.qty,
obj.goal
]);
});
data.addRows(dataArray);
//Create Data View
var view = new google.visualization.DataView(data);
view.setColumns([0, 1, 2, 3]);
// Create a dashboard.
var dashboard = new google.visualization.Dashboard(
document.getElementById('div_dashboard' + divID_suffixFunction + divID_suffixParameter1));
var categoryPicker1 = new google.visualization.ControlWrapper({
'controlType': 'StringFilter',
'containerId': 'div_dashboard_categoryPicker1' + divID_suffixFunction + divID_suffixParameter1,
'options': {
'filterColumnIndex': 0, //Column used in control
'ui': {
//'label': 'Storage Bin',
'labelStacking': 'vertical',
'labelSeparator': ':'
}
}
});
var categoryPicker2 = new google.visualization.ControlWrapper({
'controlType': 'StringFilter',
'containerId': 'div_dashboard_categoryPicker2' + divID_suffixFunction + divID_suffixParameter1,
'options': {
'filterColumnIndex': 1, //Column used in control
'ui': {
//'label': 'Storage Bin',
'labelStacking': 'vertical',
'labelSeparator': ':'
}
}
});
var chart = new google.visualization.ChartWrapper({
'chartType': 'ComboChart',
'containerId': 'div_dashboard_chart' + divID_suffixFunction + divID_suffixParameter1,
'view': {
'columns': [1, 2]
},
'options': {
width: '100%',
height: 'auto',
seriesType: 'bars',
isStacked: true,
//series: { 2: { type: 'line' } }
}
});
//Object Binding
dashboard.bind([categoryPicker1, categoryPicker2], [chart]);
// Draw the dashboard.
dashboard.draw(view);
} //END success: function (result) {
}); //END $.ajax({
} //END function drawChart()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="div_dashboard_TEMPLATE" style="">
<table style="width:100%">
<tr>
<td style="width:15%;">
<div id="div_dashboard_categoryPicker1_TEMPLATE" style="padding-right:35px;"></div>
</td>
<td style="width:15%;">
<div id="div_dashboard_categoryPicker2_TEMPLATE" style="padding-right:35px;"></div>
</td>
</tr>
</table><br />
<div id="div_dashboard_chart_TEMPLATE"></div>
</div>
一如既往,非常感谢您的帮助!
最佳答案
isStacked
选项将每一列的值堆叠在同一行中
为了叠加同一周的多个值,
您的数据需要类似于以下内容...
['calendarWeek', 'prodID 1', 'prodID 2', 'goal'],
['2017-W29', null, 1, 5],
['2017-W30', 2, 3, 5],
请参阅以下工作片段...
google.charts.load('current', {
packages: ['controls']
}).then(function () {
//Manually loaded "result" with JSON that normally comes from "urlString".
result = [{
"prodID": 2,
"calendarWeek": "2017-W29",
"qty": 1,
"goal": 5
},
{
"prodID": 2,
"calendarWeek": "2017-W30",
"qty": 3,
"goal": 5
},
{
"prodID": 1,
"calendarWeek": "2017-W30",
"qty": 2,
"goal": 5
}
];
//Create DataTable
var data = new google.visualization.DataTable();
//Add Columns
data.addColumn('string', 'calendarWeek');
$.each(result, function(i, obj) {
var colIndex = getColumnIndex('prodID ' + obj.prodID);
if (colIndex === -1) {
data.addColumn('number', 'prodID ' + obj.prodID);
}
});
data.addColumn('number', 'goal');
//Add Rows
var dataArray = [];
$.each(result, function(i, obj) {
var rowIndex = getRowIndex(obj.calendarWeek);
if (rowIndex === -1) {
rowIndex = data.addRow();
}
data.setValue(rowIndex, 0, obj.calendarWeek);
data.setValue(rowIndex, getColumnIndex('prodID ' + obj.prodID), obj.qty);
data.setValue(rowIndex, getColumnIndex('goal'), obj.goal);
});
//Create Data View
var view = new google.visualization.DataView(data);
// Create a dashboard.
var dashboard = new google.visualization.Dashboard(
document.getElementById('div_dashboard'));
var categoryPicker1 = new google.visualization.ControlWrapper({
'controlType': 'StringFilter',
'containerId': 'div_dashboard_categoryPicker1',
'options': {
'filterColumnIndex': getColumnIndex('calendarWeek'), //Column used in control
'ui': {
'labelStacking': 'vertical',
'labelSeparator': ':'
}
}
});
var series = {};
series[getColumnIndex('goal') - 1] = { type: 'line' };
var chart = new google.visualization.ChartWrapper({
'chartType': 'ComboChart',
'containerId': 'div_dashboard_chart',
'options': {
width: '100%',
height: 'auto',
seriesType: 'bars',
isStacked: true,
series: series
}
});
//Object Binding
dashboard.bind([categoryPicker1], [chart]);
// Draw the dashboard.
dashboard.draw(view);
function getColumnIndex(label) {
var colIndex = -1;
for (var i = 0; i < data.getNumberOfColumns(); i++) {
if (data.getColumnLabel(i) === label) {
colIndex = i;
}
}
return colIndex;
}
function getRowIndex(week) {
var rowIndex = -1;
for (var i = 0; i < data.getNumberOfRows(); i++) {
if (data.getValue(i, 0) === (week)) {
rowIndex = i;
}
}
return rowIndex;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="div_dashboard">
<div id="div_dashboard_categoryPicker1"></div>
<div id="div_dashboard_categoryPicker2"></div>
<div id="div_dashboard_chart"></div>
</div>
关于javascript - Google Charts - 仪表板 ComboChart 不堆叠条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47184445/
我已经能够在我的 Centos 7 服务器上成功设置 kubernetes。 在遵循 documentation 之后尝试使仪表板工作,运行“kubectl 代理”它 尝试使用 127.0.0.1:9
我正在尝试为用作仪表板的网络应用程序设计数据库架构。 可以有任意数量的仪表板(用户可以创建新的仪表板) 每个仪表板都与团队相关联(每个仪表板大约 10-25 个团队) 每个团队都有成员(每个团队约 1
我已经在 Windows VM 上部署了 minikube,并且 minikube VM 是在 Virtualbox 上使用仅主机 IP 创建的。 我已经使用 NodePort IP 部署了 Kube
我刚刚安装了 xampp-win32-5.5.30 并且在 xampp 控制面板中 Apache 和 mysql 都启动没有任何错误,但我发现: 1) 本地主机 在我的浏览器中重定向到另一个页面 本地
我是 ReactJS 的新手。我想在我的项目中使用 ReactJS-AdminLTE。谁能告诉我如何逐步使用它。 我遵循的步骤 1) 我使用 https://www.tutorialspoint.co
我们正在创建一个仪表板,用于显示给定系统在一段时间内(具体来说是过去 24 小时)内的异常数量。该图如下所示: 如果您仔细观察,最后一个柱形图是一天前的,而不是今天(请参阅图表中最后一个柱形图生成的时
我已经通过 Kubespray 成功部署了 Kubernetes,一切似乎都工作正常。我可以通过 kubectl 访问集群并列出节点、pod、服务、 secret 等。还可以应用新资源,仪表板端点可以
我在本地使用 KUBEADM 工具配置了具有 1 个主节点和 4 个工作节点的 kubernetes 集群。所有节点都运行良好。部署了一个应用程序并能够从浏览器访问该应用程序。我尝试了很多方法来使用
我们正在创建一个仪表板,用于显示给定系统在一段时间内(具体来说是过去 24 小时)内的异常数量。该图如下所示: 如果您仔细观察,最后一个柱形图是一天前的,而不是今天(请参阅图表中最后一个柱形图生成的时
我在 DashBoard Demo 看到了 PrimeFaces 仪表板演示。我目前有 PrimeFaces 1.1 jar。它可以工作还是我必须升级到下一个版本?我正在使用 JSF 1.2 和 Se
我不熟悉 Bootstrap 、HTML 以及与 Web 开发有关的所有内容。我正在使用 bootstrap 构建仪表板,我设法使基本布局正确。我的仪表板有一个顶部和侧面导航栏。 我现在想在不同页面之
这个问题在这里已经有了答案: Starting Shiny app after password input (6 个答案) 关闭 2 年前。 我正在制作一个 Shiny 的应用程序,它将显示一个仪
我正在尝试将 Grafana 仪表板的导入复制到 Grafana。 我正在使用下一个模块: - name: Export dashboard grafana_dashboard: graf
我按照本指南 link安装 kubernetes 集群,我没有错误,但我无法访问 kubernetes-Dashboard 我做了kubectl create -f https://rawgit.co
我们现在正在使用 Apache JMeter 3.1,并且对新功能 Dashboard 生成非常感兴趣。我们可以使用“-g”选项生成它并且它工作正常。 但我们也有兴趣自定义仪表板。例如: 从第一页删除
我是 wordpress 的新手,对某些东西有点困惑。我正在尝试为自己建立一个分类市场类型的网站。我不是为“客户” build 这个。由于我的编码技能达不到标准,我可能会使用几个不同的插件。最终,我希
是否可以有一个受限的 Kubernetes 仪表板?这个想法是让一个 pod 在集群中运行 kubectl proxy(受基本 HTTP 身份验证保护)以快速了解状态: pod 的日志输出 运行服务和
有人可以解释一下如何用 cocoa 读取(或至少下载为 XML 格式)吗?我就这样试过了。这可能是完全错误的:)。 NSMutableURLRequest* request = [[NSMutable
我想将我自己的部分添加到 umbraco 仪表板,以便我可以将我自己的管理部分集成到现有的登录/管理结构中。如果不编辑和重新编译 umbraco 源代码本身,这可能吗?是否推荐?如果是这样,是否有人有
我正在尝试使用配置文件访问 kubernetes 仪表板。从我选择配置文件时的身份验证中,它给出了‘ Not enough data to create auth info structure .’但
我是一名优秀的程序员,十分优秀!