- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在正确实现 javascript 库(特别是 d3fc-sample)时遇到问题。我发现这是一种数据缩减算法,对于减轻可视化大型数据集的负担很有用。这是存储库:
https://github.com/d3fc/d3fc-sample
我按照 github 说明进行操作。这是我所做的:
但是,当我尝试在浏览器中运行该页面时,这种方法不起作用。开发人员工具给了我一个错误,内容是“fc-sample is not Defined”。所以我断言 npm 方法不起作用。之后,我还尝试使用如下标签: <script>src=file_path.largestTriangleThreeBucket.js</script>
。这也没有改变任何事情。我对node.js知之甚少,我怀疑我做错了什么。如果您有任何提示,请留言。不涉及 Node.js 的库导入解决方案也是受欢迎的。
你可以在这里看到我的index.html:https://gist.github.com/diggetybo/f46ebec18dda16bf39f41b9282b5b593
或者直接下面的js脚本:
<script>
var width = 600,
height = 400;
var margins = {
top: 10,
left: 50,
right: 50,
bottom: 10,
between: 50
};
var bottomGraphHeight = 50;
var topGraphHeight = height - (margins.top + margins.bottom + margins.between + bottomGraphHeight);
var graphWidths = width - margins.left - margins.right;
var svg = d3.select('body')
.append('svg')
.attr('width', width)
.attr('height', height)
.style('font', '10px sans-serif');
svg.append('defs')
.append('clipPath')
.attr('id', 'clip')
.append('rect')
.attr('width', width)
.attr('height', height);
var focus = svg
.append('g')
.attr('transform', 'translate(' + margins.left + ',' + margins.top + ')');
var context = svg.append('g')
.attr('class', 'context')
.attr('transform', 'translate(' + margins.left + ',' +
(margins.top + topGraphHeight + margins.between) + ')');
var xScaleTop = d3.scale.linear().range([0, graphWidths]),
xScaleBottom = d3.scale.linear().range([0, graphWidths]),
yScaleTop = d3.scale.linear().range([topGraphHeight, 0]),
yScaleBottom = d3.scale.linear().range([bottomGraphHeight, 0]);
var xAxisTop = d3.svg.axis().scale(xScaleTop).orient('bottom'),
xAxisBottom = d3.svg.axis().scale(xScaleBottom).orient('bottom');
var yAxisTop = d3.svg.axis().scale(yScaleTop).orient('left');
var lineTop = d3.svg.line()
.x(function(d, i) {
return xScaleTop(i);
})
.y(function(d) {
return yScaleTop(d.y2);
});
var lineBottom = d3.svg.line()
.x(function(d, i) {
return xScaleBottom(i);
})
.y(function(d) {
return yScaleBottom(d.y2);
});
var brush = d3.svg.brush()
.x(xScaleBottom)
.on('brush', function brushed() {
xScaleTop.domain(brush.empty() ? xScaleBottom.domain() : brush.extent());
focus.select('.line').attr('d', lineTop);
focus.select('.x.axis').call(xAxisTop);
});
var url = "https://gist.githubusercontent.com/diggetybo/f46ebec18dda16bf39f41b9282b5b593/raw/70c279b9aef16f5348bc3185909c4b001414a611/wav_2.tsv";
d3.tsv(url, function(error, rawData) {
var data = rawData.map(function(d) {
return {
y2: +d.wav1
}
});
var sampler = fc_sample.largestTriangleThreeBucket();
sampler.x(function (d,i) { return i; })
.y(function (d) { return y2; });
sampler.bucketSize(10);
var sampledData = sampler(data);
xScaleTop.domain(d3.extent(data, function(d, i) {
return i;
}));
yScaleTop.domain([-.02, .02]);
xScaleBottom.domain(d3.extent(data, function(d, i) {
return i;
}));
yScaleBottom.domain([-.02, .02]);
var topXAxisNodes = focus.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(' + 0 + ',' + (margins.top + topGraphHeight) + ')')
.call(xAxisTop);
styleAxisNodes(topXAxisNodes, 0);
focus.append('path')
.datum(data)
.attr('class', 'line')
.attr('d', lineTop);
var topYAxisNodes = focus.append('g')
.call(yAxisTop);
styleAxisNodes(topYAxisNodes);
context.append('path')
.datum(sampledData)
.attr('class', 'line')
.attr('d', lineBottom);
var bottomXAxisNodes = context.append('g')
.attr('transform', 'translate(0,' + bottomGraphHeight + ')')
.call(xAxisBottom);
styleAxisNodes(bottomXAxisNodes, 0);
context.append('g')
.attr('class', 'x brush')
.call(brush)
.selectAll('rect')
.attr('y', -6)
.attr('height', bottomGraphHeight + 7);
context.selectAll('.extent')
.attr({
stroke: '#000',
'fill-opacity': 0.125,
'shape-rendering': 'crispEdges'
});
styleLines(svg);
});
function styleLines(svg) {
svg.selectAll('path.line')
.attr({
fill: 'none',
'stroke-width': 1.5,
stroke: 'steelblue',
'clip-path': 'url(#clip)'
});
}
function styleAxisNodes(axisNodes, strokeWidth) {
axisNodes.selectAll('.domain')
.attr({
fill: 'none',
'stroke-width': strokeWidth,
stroke: 'black'
});
axisNodes.selectAll('.tick line')
.attr({
fill: 'none',
'stroke-width': 1,
stroke: 'black'
});
}
</script>
最佳答案
您正在尝试使用属于 ES6 模块的 JavaScript 文件。这些不能直接加载到浏览器中,您应该使用代码的“捆绑”版本。
最简单的方法是通过顶级 d3fc bundle ,如下所示:https://d3fc.io/introduction/getting-started.html
关于javascript - 实现 D3FC-Sample 以减少数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39929393/
使用 FullCalendar 3.9.0,当您在日历中单击与背景颜色分配相同的一周的一天时,该行的突出显示 div 会覆盖 fc-bg div。 选择周时: background hidden 标准
我使用迁移学习方法训练模型并保存检测到的最佳权重。在另一个脚本中,我尝试使用保存的权重进行预测。但是我收到如下错误。我使用 ResNet 微调网络并有 4 个类。 RuntimeError: Erro
我的应用程序中有以下代码: DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(
我想学习如何使用React.FC<>在 react.js 的正常功能中。 我知道有两种类型的函数;第一个是(我更喜欢的那个): function Welcome(props) { re
所以我只是想知道使用一个而不是另一个有什么区别或原因...... export function Name() { return } 对比 export const Name = () => { r
我有以下代码: final RelativeLayout mFrame3 = (RelativeLayout) inflater.inflate( R.layout.ptrip, c
if (someId.matches("A") || someId.matches("a")) { addLetters(); addIcon(R.drawable.a
我有以下 XML: 我的部分Java代码: View.OnTouchListener llTouch = new View.OnTouchListener()
我正在使用 FullCalendar,并且 fc-more 链接存在一个持续存在的错误,该错误显示日历中列出的事件的重复项。 底层 mysql 调用不会产生重复。我认为当事件跨越多天时,日历中的某些内
我使用的是 Samsung Fascinate,构建版本是 4.2.1 AOSP (CM10.1 Nightly)。 相机实在是太糟糕了,所以我换了它。新的 Camera FC 正在启动,我拉了一个
我有一个正在开发的应用程序,到目前为止只编辑了 xml,当我尝试调试时我得到了这个: 调试: Thread [ main] (Suspended (exception RuntimeException
我有一个没有错误的绘图 Canvas ,但一直强制关闭。我不确定为什么要强制关闭。我对 Canvas 一无所知,如果有人能帮助我,那就太好了。 记录 cat 错误 05-03 10:07:12.803
我正在尝试在首选项布局中实现 DialogPreference。不幸的是,下面的代码总是导致强制关闭。 EditTextPreferences 运行良好,但我需要一个简单的对话框。有什么建议吗? 最
当 dragging an event日历上出现浅蓝色,我想是.fc-highlight class确定颜色但尝试用 css 覆盖它似乎不起作用,似乎也没有任何 draggable callbacks
我在月 View 中为星期日设置了背景图像,但标题中的“星期日”日也设置了相同的背景,而其他标题日期设置正确。我看到表线程的 css 也有 .fc-sun .fc-mon 等,但我不知道如何从线程中删
即使以管理员身份运行,它似乎也只有在我位于文件夹中时才能工作:C:\Windows\System32\ 关于如何让它在 C:\目录中的任何地方工作有什么建议吗? 最佳答案 您的 PATH 语句是 fu
FC++库提供了一种有趣的方法来支持 C++ 中的函数式编程概念。 FAQ 中的一个简短示例: take (5, map (odd, enumFrom(1))) FC++ 似乎从 Haskell 中汲
进程文件: fc or fc.exe 进程名称: CAMPURF virus 进程类别:存在安全风险的进程 英文描述: fc.exe is adde
有什么方法可以抑制 React.FC 中的水化警告吗?我有一个警告 Did not expect server HTML to contain a in 因为pause: isServer()东西,
我面临 ref 的问题 - 我需要引用功能组件并将 Prop 传递给它。到目前为止,我得到了我的父组件和子组件。在我的父组件中,我需要对我的 child 使用 ref。我需要在我的父组件中使用 pro
我是一名优秀的程序员,十分优秀!