- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里(以及一般的网络开发)很新,所以请原谅我长期存在的任何误用...我正在尝试使用从 MesoWest Mesonet 返回的数据(以 JSON 格式)创建一个基本的风玫瑰图API服务。我正在使用 HighCharts(或尝试使用),但无法完全使其正常工作。也许这是由于我从 API 本身获取数据的方法所致,因为我在这方面完全是业余爱好者。以下是 Javascript 代码,后面是该页面的 HTML。有人可以看一下并让我知道我做错了什么吗?当我尝试加载页面时,页面上没有显示任何内容。此外,如果您对 MesoWest 的 API 调用的细节感到好奇,就像我在这里使用的那样,请参阅 http://mesowest.org/api/docs/.js 脚本:
var windrose = {
divname: "windrosediv",
tkn: "eecfc0259e2946a68f41080021724419",
load:function()
{
console.log('loading')
if (!window.jQuery) {
var script = document.createElement("script");
script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js';
script.type = 'text/javascript';
document.getElementByTagName("head")[0].appendChild(script);
setTimeout(pollJQuery, 100)
return
}
this.div = $("#"+this.divname);
this.request('WBB');
},
pollJQuery:function()
{
if (!window.jQuery) {
setTimeout(pollJQuery,100);
} else {
load();
}
},
request:function(stn){
console.log("making a request")
$.getJSON(http://api.mesowest.net/v2/stations/nearesttime?callback=?',
{
stid:stn,
within:1440,
units:'english',
token:windrose.tkn
}, this.receive);
},
receive:function (data)
{
console.log(data,windrose);
stn = data.STATION[0]
dat = stn.OBSERVATIONS
spd += Math.round(dat.wind_speed_value_1.value)
dir += dat.wind_direction_value_1.value
windDataJSON = [];
for (i = 0; i < dir.length; i++) {
windDataJSON.push([ dir[i], spd[i]
]);
},
}
$(function () {
var categories = ['0', '45', '90', '135', '180', '225', '270', '315'];
$('#container').highcharts({
series: [{
data: windDataJSON
}],
chart: {
polar: true,
type: 'column'
},
title: {
text: 'Wind Rose'
},
pane: {
size: '85%'
},
legend: {
align: 'right',
verticalAlign: 'top',
y: 100,
layout: 'vertical'
},
xAxis: {
min: 0,
max: 360,
type: "",
tickInterval: 22.5,
tickmarkPlacement: 'on',
labels: {
formatter: function () {
return categories[this.value / 22.5] + '°';
}
}
},
yAxis: {
min: 0,
endOnTick: false,
showLastLabel: true,
title: {
text: 'Frequency (%)'
},
labels: {
formatter: function () {
return this.value + '%';
}
},
reversedStacks: false
},
tooltip: {
valueSuffix: '%'
},
plotOptions: {
series: {
stacking: 'normal',
shadow: false,
groupPadding: 0,
pointPlacement: 'on'
}
}
});
});
和 HTML:
<!DOCTYPE html>
<html>
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<script src="https://code.highcharts.com/modules/data.js">`enter code </script>
<script src="https://code.highcharts.com/modules/exporting.js"> </script>
<div id="container" style="min-width: 420px; max-width: 600px; height: 400px; margin: 0 auto"></div>
<p class="ex">
<script type="text/javascript" src="http://home.chpc.utah.edu/~u0675379/apiDemos/windTest.js"></script>
</p>
</html>
非常感谢这方面的任何指导,谢谢!-将
最佳答案
@W.Howard,我认为这里的问题是您如何处理和准备来自 API 的 JSON 响应。考虑使用以下 JavaScript 来检索和解析数据:
/*
* Helper function
* scalarMultiply(array, scalar)
*/
function scalarMultiply(arr, scalar) {
for (var i = 0; i < arr.length; i++) {
arr[i] = arr[i] * scalar;
}
return arr;
}
/*
* getQuery(station, api_token)
*/
function getQuery(station, mins, api_token) {
$.getJSON('http://api.mesowest.net/v2/stations/timeseries?callback=?', {
/* Specify the request parameters here */
stid: station,
recent: mins, /* How many mins you want */
obtimezone: "local",
vars: "wind_speed,wind_direction,wind_gust",
jsonformat: 2, /* for diagnostics */
token: api_token
},
function(data) {
try {
windSpeed = data.STATION[0].OBSERVATIONS.wind_speed_set_1;
windDir = data.STATION[0].OBSERVATIONS.wind_direction_set_1;
windGust = data.STATION[0].OBSERVATIONS.wind_gust_set_1;
} catch (err) {
console.log("Data is invalid. Check your API query");
console.log(this.url);
exit();
}
/* Convert from knots to mph */
windSpeed = scalarMultiply(windSpeed, 1.15078);
//windGust = scalarMultiply(windGust, 1.15078);
/* Create and populate array for plotting */
windData = [];
for (i = 0; i < windSpeed.length; i++) {
windData.push([windDir[i], windSpeed[i]]);
}
/* Debug */
// console.log(windData);
console.log(this.url);
plotWindRose(windData, mins);
})
};
我们现在拥有的是一个包含风向和风速的二维数组,我们可以将其传递给绘图函数。以下是更新后的绘图功能:
/*
* Plot the wind rose
* plotWindRose([direction, speed])
*/
function plotWindRose(windData, mins) {
/*
* Note:
* Because of the nature of the data we will accept the HighCharts Error #15.
* --> Highcharts Error #15 (Highcharts expects data to be sorted).
* This only results in a performance issue.
*/
var categories = ["0", "45", "90", "135", "180", "225", "270", "315"];
$('#wind-rose').highcharts({
series: [{
name: "Wind Speed",
color: '#cc3000',
data: windData
}],
chart: {
type: 'column',
polar: true
},
title: {
text: 'Wind Direction vs. Frequency (Last ' + mins/60. + ' hours)'
},
pane: {
size: '90%',
},
legend: {
align: 'right',
verticalAlign: 'top',
y: 100,
text: "Wind Direction"
},
xAxis: {
min: 0,
max: 360,
type: "",
tickInterval: 45,
tickmarkPlacement: 'on',
labels: {
formatter: function() {
return categories[this.value / 45] + '\u00B0';
}
}
},
yAxis: {
min: 0,
endOnTick: false,
showLastLabel: true,
title: {
text: 'Frequency (%)'
},
labels: {
formatter: function() {
return this.value + '%';
}
},
reversedStacks: false
},
tooltip: {
valueSuffix: '%'
},
plotOptions: {
series: {
stacking: 'normal',
shadow: false,
groupPadding: 20,
pointPlacement: 'on'
}
}
});
}
您可以在 https://gist.github.com/adamabernathy/eda63f14d79090ab1ea411a8df1e246e 处查看全部内容。祝你好运!
关于javascript - 来自 API 数据 (JSON) 的 Highcharts Windrose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34581415/
我是Python的初学者。通过关注this例如,我尝试制作 Windrose 子图,例如: 但我以这种方式得到情节: The code that I tried is: ws = np.random.
我正在尝试根据一系列风速和方向值制作风向图。我知道如何编写原始程序来执行此操作,如下所示: from windrose import WindroseAxes from matplotlib impo
下面我使用基于 this 的 Windrose 绘制了风玫瑰图.首先,图例覆盖了玫瑰的一部分,但当我尝试使用 loc 设置其位置时,图例消失了。 其次,图例右括号是错误的,即 [0.0 : 1.0[
我正在使用 windrose.py 并且没有得到与其他人相同的样本结果。而不是“N”在顶部,我在图像顶部得到 90。每个方向我都有多个风速。我首先在一个方向上测试绘图。我不知道如何绘制其他 350 度
我有风数据,其中包括风速和风向。 但是,我的风向定义为逆时针方向。这意味着,我的数据的 45 度实际上是 NW。 是否有机会使用 Python 中的 Windrose 来更改此设置? 我有以下代码来绘
我正在尝试使用Python中的windrose模块在子图中绘制风玫瑰图 https://pypi.python.org/pypi/windrose/ 除了一些示例之外,没有太多文档,所以我不知道如何使
我是 Python 新手,正在尝试使用可在以下网站找到的 windrose.py 代码创建风向玫瑰:http://sourceforge.net/projects/windrose/ 以下是我正在运行
我正在使用 Highcharts 4.15,我想显示我的风玫瑰图的堆栈标签,但它没有按我的预期工作。这里是一个例子:http://jsfiddle.net/Paulson/xdvaecff/ yAxi
到目前为止,我一直在尝试移动 yticklabel,但没有成功。无论verticalalignment 和horizontalalignment 是什么,yticklabel 的位置(在本例中为
我发现了 this模块效果很好,我喜欢输出。我正在尝试更改随机输入的值,此处: ws = random(500)*6 wd = random(500)*360 来自 this reference我们了
在 tkinter 窗口中绘制 Windrose 时遇到一些问题。我无法让风玫瑰自行显示,窗口在绘图后面显示另一个网格(见下图)。有什么方法可以让它只显示风玫瑰而不在背景中显示额外的网格?最终代码将每
我正在尝试用 windrose 的 4 个子图制作一个图形,但我意识到 windrose 只有这样的轴:ax = WindroseAxes.from_ax() 那么,我该如何绘制子图用风玫瑰? 最佳答
我正在尝试绘制具有分级浓度值的 windrose。遵循 this post 的建议和一些修改,我创建了一个情节。但是,在 0 度附近存在不连续性。任何帮助将不胜感激! 这是我的代码: wd = lis
我在这里(以及一般的网络开发)很新,所以请原谅我长期存在的任何误用...我正在尝试使用从 MesoWest Mesonet 返回的数据(以 JSON 格式)创建一个基本的风玫瑰图API服务。我正在使用
尝试绘制风向图,绘制速度和方向,浓度决定颜色。不幸的是,matplotlib 只支持两个变量。可以制作一个漂亮的散点图来显示我想要的内容,但不确定如何将它装箱,以便它像附件中的图像一样出现(Halli
我是一名优秀的程序员,十分优秀!