- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在网站上展示一个或多个时间图。我正在使用 DateRangeSlider,因此用户可以输入他们想要检查的确切时间。理想情况下,我希望用户能够拨入一个时间,而这个时间应该准确地显示在图表上。但是,图表将始终从过滤集中的第一个可用数据点开始。例如,我拨入 21-01-2019 作为开始日期,但下一个数据点仅在 24-01-2019,那么图表也将从该较晚的日期开始。对于我的用例,如果图表在第一个数据点之前保持空白会更好,但实际上是从 21-01-2019 开始的。更好的方法是获取过滤集之外的第一个数据点,并且仍然在集合外部的最后一个点和内部的第一个点之间显示一条线。
这是我目前使用的代码:
var dashboard = new google.visualization.Dashboard(chartSliderPos);
var rangeSlider = new google.visualization.ControlWrapper({
'controlType': 'DateRangeFilter',
'containerId': chartSliderPos,
'options': {
'filterColumnLabel': 'Time',
'ui': {
'step': 'hour'
}
}
});
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable();
data.addColumn("date", "Time");
data.addColumn("number", "Value");
data.addRows(resultArray);
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.ChartWrapper({
'chartType': 'SteppedAreaChart',
'containerId': pos,
'options': {
'width': 750,
'height': 300,
'explorer': {},
'legend': 'none'
}
});
dashboard.bind(rangeSlider, chart);
//callback for slider manipulation
chartsArray.push( function(a, b) {
rangeSlider.setState({'lowValue': a, 'highValue': b});
rangeSlider.draw();
});
dashboard.draw(data);
如您所见,范围 slider 拨入的日期与图表显示的日期不同,因为下一个数据点要晚得多才可用。
编辑:通过查看来自 Google 的示例,我发现了一个示例,其中范围 slider 几乎可以满足我的要求。然而,我不需要注释图表,我不知道是什么让它在这个例子中起作用。示例:https://developers.google.com/chart/interactive/docs/gallery/annotationchart
最佳答案
您可以使用 hAxis.viewWindow
选项在图表上设置特定的开始和结束日期。
hAxis: {
format: 'yy/MM/dd HH:mm:ss',
viewWindow: {
min: new Date(2019, 3, 1),
max: new Date(2019, 3, 30)
}
}
但是,范围过滤器将只允许数据中的最小值和最大值。
相反,您可以使用自己的过滤器输入日期。
在这里,使用了 jquery ui slider ...
google.charts.load('current', {
packages: ['controls', 'corechart']
}).then(function () {
var resultArray = [
[new Date(2019, 3, 18), 555],
[new Date(2019, 3, 19), 415],
[new Date(2019, 3, 20), 210],
[new Date(2019, 3, 21), 210],
[new Date(2019, 3, 22), 210],
];
var data = new google.visualization.DataTable();
data.addColumn('date', 'Time');
data.addColumn('number', 'Value');
data.addRows(resultArray);
var chart = new google.visualization.ChartWrapper({
chartType: 'SteppedAreaChart',
containerId: 'chart_div',
dataTable: data,
options: {
chartArea: {
height: '100%',
width: '100%',
top: 24,
left: 72,
right: 72,
bottom: 72
},
height: '100%',
width: '100%',
explorer: {},
legend: 'none',
hAxis: {
format: 'yy/MM/dd HH:mm:ss',
viewWindow: {
min: new Date(2019, 3, 1),
max: new Date(2019, 3, 30)
}
}
}
});
chart.draw();
var formatDate = new google.visualization.DateFormat({
pattern: chart.getOption('hAxis.format')
});
$('#date-min').html(formatDate.formatValue(chart.getOption('hAxis.viewWindow.min')));
$('#date-max').html(formatDate.formatValue(chart.getOption('hAxis.viewWindow.max')));
$('.slider > div').slider({
range: true,
min: chart.getOption('hAxis.viewWindow.min').getTime(),
max: chart.getOption('hAxis.viewWindow.max').getTime(),
values: [
chart.getOption('hAxis.viewWindow.min').getTime(),
chart.getOption('hAxis.viewWindow.max').getTime()
],
slide: function(event, ui) {
chart.setOption('hAxis.viewWindow.min', new Date(ui.values[0]));
chart.setOption('hAxis.viewWindow.max', new Date(ui.values[1]));
$('#date-min').html(formatDate.formatValue(new Date(ui.values[0])));
$('#date-max').html(formatDate.formatValue(new Date(ui.values[1])));
chart.draw();
}
});
});
label {
font-family: Arial;
font-size: 12px;
white-space: nowrap;
}
.chart {
height: 300px;
}
.slider {
width: 100%;
}
.table {
display: table;
width: 100%;
}
.table-cell {
display: table-cell;
padding: 16px;
}
.table-row {
display: table-row;
}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div class="chart" id="chart_div"></div>
<div class="table">
<div class="table-row">
<div class="table-cell">
<label id="date-min">19/04/01</label>
</div>
<div class="table-cell slider">
<div></div>
</div>
<div class="table-cell">
<label id="date-max">19/04/30</label>
</div>
</div>
</div>
关于javascript - 谷歌图表 : Set exact Date-boundarys in charts (when using FilterSliders),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790667/
我有一个通过 Google Charts Org Chart API 呈现的图表。当用户单击节点时,如何获取有关所选节点的数据。我理解到我进行“getSelection”调用以将选择信息输出到 Jav
我使用Chart.js显示雷达图。我的问题是某些标签很长: 图表无法显示或显得很小。 那么,有没有办法换行或为标签分配最大宽度? 感谢您的帮助! 最佳答案 对于Chart.js 2.0+,您可以使用数
我想问一下使用Chart.js http://www.chartjs.org/ 可以吗?获得组合条形图和折线图? 感谢您的任何建议。 最佳答案 下面的答案与chart.js 1.x有关。 Chart.
我在addData和removeData函数中添加了chart.resize(),但它总是增加高度并且永远不会减少! 当用户单击菜单项时,我正在更新图表。有些项目有超过 100 个数据,有些项目只有
horizontal bar chart var barOptions_stacked1 = { tooltips: { e
我们将 Chart.js 与 clojurescript 和 Reagent 一起使用。现在我知道 Chart.js 有一个 Chart.update() 方法来用新数据更新图表。所以问题是,如何设置
我想显示一个包含多个数据集的条形图,如下所示,。。我可以获取如下所示的数据。。而是如何转换这个JSON数组,如下所示。我需要显示过去7天每个班次的出勤百分比。。感谢你在这方面的帮助。谢谢!。=编辑=
I want to display a bar chart with multiple datasets as shown below,我想显示一个包含多个数据集的条形图,如下所示, I'
假设我有一个 Charting.Chart : 我想导出到 Excel.Workbook.Worksheet以便我稍后可以“播放”数据(例如在 Excel 图表上拖放更多数据等): 请不要介意第二张图
离子性: ionic(Ionic CLI):4.10.3(/Users/faiz/.nvm/versions/node/v8.9.4/lib/node_modules/ionic) 离子框架:离子角3
我正在使用Chart.js来可视化我的数据,如下图所示。。。我想在图表中间加一张照片。。。如何在甜甜圈图表的中间添加照片?下面是我的javascript代码:
我正在使用 Kendo 饼图,我想将其配置为在没有数据可显示时显示一条消息。我正在使用以下 js 函数配置饼图 - 变量“JsPieChartDataSet”是一组 JSON 格式的数据。 是否有可以
是否可以在图表和x轴之间获得更多空间? 是否可以在图表的右侧和 Canvas 区域的末端之间留出更多的空间?我想在图表旁边的 Canvas 中添加更多元素,但是这是不可能的,因为图表占用了整个 Can
我正在使用chart.js,在图表的某些点的多日条目之间缺少一些数据。我已将这些值分配为null,但希望图表在缺失点之间绘制一条连接线。这是我所拥有的: 有没有办法将chart.js中的点连接起来?也
我正在生成一些谷歌图表,但我被困在这里。 Google 允许您将列堆叠起来。但它要么受到限制,要么我无法将其配置为工作。取自谷歌,这里有一个例子,显示了两个国家每年生产的咖啡杯数: 假设我有另一个相同
使用 Google Charts 条形图,是否可以更改一个条形的颜色。例如,我想将 2006 年的数据设为红色(其他条形为蓝色)。 function drawVisualization() {
我目前正在尝试重新设计设计布局。我通过尝试和错误得到了大部分。我唯一不明白的部分是: 1.) 左侧和底部的黑色轴。所以只有那些是黑色的2.) 里面的浅灰色轴。如何在颜色上应用不透明度或使用我自己的颜色
我使用以下命令创建了一个名为“abc”的 Helm 图表helm create abc现在,当我安装此图表时,所有创建的kuberenets资源将具有一个包含“abc”的名称。 现在,我必须将图表“a
我正在构建一个折线图,除了 ChartScrollbar 中的标签之外,一切正常,因为类别名称有点长,cahrtScrollbar 中的标签相互堆叠使其无法读取。我想知道是否可以隐藏标签、仅显示一些标
我正在使用 Chart.js 2.5。我的情况是,我有一个包含 40 个数据的数据集,但我只想在折线图中显示 7 个数据,但仍然可以水平向左/向右移动以发现其余数据。 我尝试了ticks.maxTic
我是一名优秀的程序员,十分优秀!