我很难理解更新highcharts图表的正确方法.假设我已经渲染了一个图表,然后我想以某种方式更新它.例如,我可能想要更改数据系列的值,或者我可能想要启用dataLabels.
目前我唯一可以弄清楚如何做到这一点的方法是改变图表选项,并new Highcharts.chart用来告诉highcharts重绘.
但是,我想知道这是否有点矫枉过正,而且可能有可能"原位"改变图表,而不必从头开始new Highcharts.chart.我注意到有一种redraw()方法,但我似乎无法让它工作.
很感谢任何形式的帮助.
谢谢,
知更鸟
示例代码如下,底部有一个jsFiddle
$(document).ready(function() {
chartOptions = {
chart: {
renderTo: 'container',
type: 'area',
},
series: [{
data: [1,2,3]
}]
};
chart1 = new Highcharts.Chart(chartOptions);
chartOptions.series[0].data= [10,5,2];
chart1 = new Highcharts.Chart(chartOptions);
//The following seems to have no effect
chart1.series[0].data = [2,4,4];
chart1.redraw();
});?
Run Code Online (Sandbox Code Playgroud)
[编辑]:
对于此问题的任何未来观众,值得注意的是没有隐藏和显示dataLabels的方法.以下显示了如何执行此操作:http://jsfiddle.net/supertrue/tCF8Y/
我想在HighCharts的馅饼/甜甜圈图表的中心放置一个标题.
我没有在图表选项中看到任何可以直接启用它的内容,所以我认为它需要使用Highcharts SVG渲染器 - chart.renderer.text('My Text', x, y).
我有这个设置,但我不能让文本在馅饼中居中.x和y值似乎不接受百分比.是否有一种程序化的方法让它在情节中居中,并在容器大小调整中存活?
更新:将x和y设置为50%可以使圆圈居中(使用renderer.circle(x, y, radius)),但不能居中(使用renderer.text(text, x, y)).
请在此处查看结果:http://jsfiddle.net/supertrue/e2qpa/
我需要从两个Web服务器请求数据.任务是独立的; 因此,我使用的是aync.parallel.现在我只在我的网页正文中写'abc','xyz'和'Done'.
由于任务是同时执行的,我可以遇到奇怪的输出吗?例如,
xab
cyz
Run Code Online (Sandbox Code Playgroud)
代码.
var async = require('async');
function onRequest(req, res) {
res.writeHead(200, {
"Content-Type" : "text/plain"
});
async.parallel([ function(callback) {
res.write('a');
res.write('b');
res.write('c\n');
callback();
}, function(callback) {
res.write('x');
res.write('y');
res.write('z\n');
callback();
} ], function done(err, results) {
if (err) {
throw err;
}
res.end("\nDone!");
});
}
var server = require('http').createServer(onRequest);
server.listen(9000);
Run Code Online (Sandbox Code Playgroud) 在PHP中,有什么方法可以忽略未定义的函数而不是抛出在浏览器中可见的致命错误?-ie,致命错误:调用未定义的函数
我知道有一种将所有自定义函数包装在条件中的做法,如下所示,但是有一种编程方式来获得这种效果吗?
if (function_exists('my_function')) {
// use my_function() here;
}
Run Code Online (Sandbox Code Playgroud) 在居中h1元素中,如果文本属于多行,换行符会使文本如下所示:
This is a header that takes up two
lines
This is a header that takes up three
lines because it is really, really
long
Run Code Online (Sandbox Code Playgroud)
有没有办法操纵这些元素,使文本行的长度大致相等?像这样:
This is a header that
takes up two lines
This is a header that takes
up three lines because it
is really, really long
Run Code Online (Sandbox Code Playgroud)
jQuery插件Widow Fix可以防止单字行,但我正在寻找能够在多行元素中平衡所有行的东西.是否有任何jQuery插件,或者你可以推荐一个策略?
我知道可以通过更改plotOptions.pie.dataLabels.distance将饼图标签放在饼图内部或外部.我想弄清楚是否可以逐点改变它:
如果切片小于15%,则在切片内放置标签
否则将标签放在切片之外
在Highcharts中这可能吗?以下是我的尝试之一,但不起作用; 简单的jsfiddle在这里:http://jsfiddle.net/supertrue/q6bQP/
plotOptions: {
pie: {
dataLabels: {
distance: -30,
color: 'white',
formatter: function() {
if (this.y < 15 ) {
this.point.dataLabels.color = 'red';
this.point.dataLabels.distance = 20;
return this.point.name;
} else {
return this.point.name;
}
}
},
Run Code Online (Sandbox Code Playgroud) 我使用一种y轴标签样式,其中每个数字左对齐放置在其各自的水平网格线的顶部,如下图所示.
HighCharts中唯一的复杂因素是轴标签有时会与柱形图中的第一列重叠.
更新的演示:有关示例,请参阅此图表:http://jsfiddle.net/NWsgz/1/

我试图使用xAxis.minpadding,但该属性似乎对柱形图没有影响.在Highcharts中有没有办法获得我想要的效果?理论上我可以通过使条形很窄来获得效果,但我正在寻找另一种解决方案.
使用TinyMCE,我可以轻松地操作内容并将其发送回编辑器,如下所示:
// get content from tinyMCE
var content = tinyMCE.get('content').getContent();
// manipulate content using js replace
content = content.replace(/<\/?div>/gi, '');
// send back to tinyMCE
tinyMCE.get('content').setContent( content );
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常.但是,我不能让这个工作:
// get content from tinyMCE (it provides an html string)
var content = tinyMCE.get('content').getContent();
// make it into a jQuery object
var $content = $(content);
// manipulate the jquery object using jquery
$content = $content.remove('a');
// use a chained function to get its outerHTML
content = $("<div />").append( $content.clone() ).html();
// …Run Code Online (Sandbox Code Playgroud) 我试图在PHP中创建一个Wordpress短代码样式的功能,用图像替换像"[[133]]"这样的短代码.基本上,我有一个图像URL /标题/副标题的MySQL表,ID为1-150,我希望能够使用这样的短代码将它们动态插入到我的页面文本中:
Blabla bla bla bla bla.[[5]]此外,唧唧歪歪喇嘛喇嘛[[27]]嘿,并唧唧歪歪![[129]]
所以,我只想把ID作为$ id,然后将其提供给MySQL查询,如mysql_query("SELECT title,subtitle,url FROM images WHERE id = $ id"),然后替换"[[id]] "用img/title/subtitle.我希望能够在同一页面上多次这样做.
我知道这必须涉及正则表达式和preg_match,preg_replace,strstr,strpos,substr的一些组合...但我不知道从哪里开始以及我应该使用哪些函数来做哪些事情.你能推荐一个策略吗?我不需要代码本身 - 只知道使用哪些部分将非常有用.
我经常使用包含必须右对齐的数字的表,以使一个/十/几百/千位的数字对齐。像这样:
2,343
1,000,000
43
43,394
232,111
Run Code Online (Sandbox Code Playgroud)
这些表中的列标题居中。当表的列很宽时,看起来并不好:
Column 1 Column 2
===========================|===========================
2,343 | 32
43 | 44,432
12,243,394 | 23
232,111 | 4,432
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以使用javascript,jQuery或CSS根据最大的数字来使数字居中,但是要保持正确的理由呢?所需的最终结果将是这样的:
Column 1 Column 2
===========================|===========================
2,343 | 32
43 | 44,432
12,243,394 | 23
232,111 | 4,432
Run Code Online (Sandbox Code Playgroud)
我知道我可以全局设置td填充,但是我正在寻找一种动态解决方案,该解决方案可以适应不同的表,即使列宽和数字宽也不同。
能做到吗?
javascript ×6
highcharts ×4
jquery ×3
php ×2
css ×1
fatal-error ×1
node.js ×1
shortcode ×1
svg ×1
tinymce ×1
undefined ×1
wordpress ×1