- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对此完全陌生,并且在使用 NVD3 图表时遇到问题。我希望我能找到一些帮助,因为这里似乎有人是这个主题的专家。
我正在尝试创建一个下拉框来选择要显示的数据。到目前为止,我已经能够使用 tesdata 变量内的默认 json 数据创建图表。我想添加一个选择框,可以在其中选择不同的数据(testdata1、testdata2、testdata3...)并相应地显示图表。我对此比较陌生,所以我什至不知道如何编写自定义函数来完成此类任务。
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link href="nv.d3.css" rel="stylesheet" type="text/css"></link>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.2/d3.min.js" charset="utf-8"></script>
<script src="nv.d3.js"></script>
<style>
text {
font: 12px sans-serif;
}
svg {
display: block;
}
html, body, #chart1, svg {
margin: 0px;
padding: 0px;
height: 90%;
width: 90%;
}
button {
margin: 2px;
margin-left: 80px;
}
</style>
</head>
<aside style="margin-top:80px;margin-left:250px;">
<p>Select by Test data: <select id="order">
<option value="testdata">by Test Data 1</option>
<option value="testdata2">by Test Data 2</option>
<option value="testdata3">by Test Data 3</option>
</select>
</aside>
<body>
<div style="position:absolute; top: 0; left: 0;">
<!--<button onclick="chart.switchYAxisOrder(!chart.switchYAxisOrder()); chart.update();">toggle axis</button>-->
<button onclick="chart.focusEnable(!chart.focusEnable()); chart.update();">toggle focus</button>
<span style="color: #C60;"><-- turn focus on or off!</span>
</div>
<div id="chart1" class='with-3d-shadow with-transitions'>
<svg> </svg>
</div>
<script>
var testdata = [
{
"key" : "Total-Employees",
"bar": true,
"values" : [ [946616400000 ,8063410] , [ 978238800000 , 7782680] , [ 1009774800000 , 7212360] , [ 1041310800000 , 7092460] , [ 1072846800000 , 6653480] , [ 1104469200000 , 6200940] , [ 1136005200000 , 5960560],[1167541200000,5892900],[1199077200000,6003930]]
},
{
"key" : "Annual-Pay",
"values" : [ [946616400000 , 80572] , [ 978238800000 , 82105] , [ 1009774800000 , 82936] , [ 1041310800000 , 90900] , [ 1072846800000 , 93292] , [ 1104469200000 , 93880], [1136005200000 , 93903],[1167541200000,94548],[1199077200000,96150]]
}
].map(function(series) {
series.values = series.values.map(function(d) { return {x: d[0], y: d[1] } });
return series;
});
var chart;
nv.addGraph(function() {
chart = nv.models.linePlusBarChart()
.margin({top: 50, right: 80, bottom: 30, left: 80})
.legendRightAxisHint(' [Using Right Axis]')
.color(d3.scale.category10().range());
chart.xAxis.tickFormat(function(d) {
return d3.time.format('%x')(new Date(d))
}).showMaxMin(false);
chart.y2Axis.tickFormat(function(d) { return '$' + d3.format(',f')(d) });
chart.bars.forceY([0]).padData(false);
chart.x2Axis.tickFormat(function(d) {
return d3.time.format('%x')(new Date(d))
}).showMaxMin(false);
d3.select('#chart1 svg')
.datum(testdata)
.transition().duration(500).call(chart);
nv.utils.windowResize(chart.update);
chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
return chart;
});
</script>
</body>
</html>
感谢任何帮助!
最佳答案
您只需更新您的 testdata 变量,然后执行以下几行:
d3.select('#chart1 svg')
.datum(testdata);
chart.update();
var datasets = {}
var chart;
function generateDatasets() {
for (var i = 1; i <= 3; i++) {
values = [];
for (var j = 0; j < 50; j++) {
values.push({
x: Math.random() * 100,
y: Math.random() * 100
});
}
var dataset = [{
key: "Dataset " + i,
values: values
}];
datasets["Dataset" + i] = dataset;
}
}
function initializeGraph(callback) {
nv.addGraph(function(callback) {
chart = nv.models.scatterChart();
d3.select('#chart svg')
.datum([])
.call(chart);
nv.utils.windowResize(chart.update);
return chart;
}, callback);
}
function showDataset(dataset) {
d3.select('#chart svg')
.datum(dataset);
chart.update();
}
$("#dataset").change(function() {
var value = $("#dataset").val();
showDataset(datasets[value]);
});
generateDatasets();
initializeGraph(function() {
showDataset(datasets.Dataset1);
});
#chart {
height: 500px;
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.2/nv.d3.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.2/nv.d3.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="dataset">
<option value="Dataset1">Dataset 1</option>
<option value="Dataset2">Dataset 2</option>
<option value="Dataset3">Dataset 3</option>
</select>
<div id="chart">
<svg></svg>
</div>
关于javascript - 添加NVD3图表的选择框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36355261/
是否有某种方法可以使用 JPA 或 Hibernate Crtiteria API 来表示这种 SQL?或者我应该将其作为 native 执行吗? SELECT A.X FROM (SELECT X,
在查询中, select id,name,feature,marks from (....) 我想删除其 id 在另一个 select 语句中存在的那些。 从 (...) 中选择 id 我是 sql
我想响应用户在 select 元素中选择一个项目。然而这个 jQuery: $('#platypusDropDown').select(function () { alert('You sel
这个问题在这里已经有了答案: SQL select only rows with max value on a column [duplicate] (27 个回答) 关闭8年前。 我正在学习 SQL
This question already has answers here: “Notice: Undefined variable”, “Notice: Undefined index”, and
我在 php 脚本中调用 SQL。有时“DE”中没有值,如果是这种情况我想从“EN”中获取值 应该是这样的,但不是这样的 IF (EXISTS (SELECT epf_application_deta
这可能是一个奇怪的问题,但不知道如何研究它。执行以下查询时: SELECT Foo.col1, Foo.col2, Foo.col3 FROM Foo INNER JOIN Bar ON
如何在使用 Camera.DestinationType.FILE_URI. 时在 phonegap camera API 中同时选择或拾取多个图像我能够一次只选择一张图像。我可以使用 this 在
这是一个纯粹的学术问题。这两个陈述实际上是否相同? IF EXISTS (SELECT TOP 1 1 FROM Table1) SELECT 1 ELSE SELECT 0 相对 IF EXIS
我使用 JSoup 来解析 HTML 响应。我有多个 Div 标签。我必须根据 ID 选择 Div 标签。 我的伪代码是这样的 Document divTag = Jsoup.connect(link
我正在处理一个具有多个选择框的表单。当用户从 selectbox1 中选择一个选项时,我需要 selectbox2 active 的另一个值。同样,当他选择 selectbox2 的另一个值时,我需要
Acme Inc. Christa Woods Charlotte Freeman Jeffrey Walton Ella Hubbard Se
我有一个login.html其中form定义如下: First Initial Plus Last Name : 我的do_authorize如下: "; pri
$.get( 'http://www.ufilme.ro/api/load/maron_online/470', function(data
我有一个下拉列表“磅”、“克”、“千克”和“盎司”。我想要这样一种情况,当我选择 gram 来执行一个函数时,当我在输入字段中输入一个值时,当我选择 pounds 时,我想要另一个函数来执行时我在输入
我有一个 GLSL 着色器,它从输入纹理的 channel 之一(例如 R)读取,然后写入输出纹理中的同一 channel 。该 channel 必须由用户选择。 我现在能想到的就是使用一个 int
我想根据下拉列表中的选定值生成输入文本框。 Options 2 3 4 5 就在这个选择框之后,一些输入字段应该按照选定的数字出现。 最佳答案 我建议您使用响应式(Reac
我是 SQL 新手,我想问一下如何根据首选项和分组选择条目。 +----------+----------+------+ | ENTRY_ID | ROUTE_ID | TYPE | +------
我有以下表结构: CREATE TABLE [dbo].[UTS_USERCLIENT_MAPPING_USER_LIST] ( [MAPPING_ID] [int] IDENTITY(1,1
我在移除不必要的床单时遇到了问题。我查看了不同的论坛并将不同的解决方案混合在一起。 此宏删除工作表(第一张工作表除外)。 Sub wrong() Dim sht As Object Applicati
我是一名优秀的程序员,十分优秀!