Jquery plugins Tickformatter在最新版本的Flot中未按预期执行
在我们以前版本的Flot中,下面的tickformatter函数运行良好。它显示该值并正确使用该类Jquery plugins Tickformatter在最新版本的Flot中未按预期执行,jquery-plugins,Jquery Plugins,在我们以前版本的Flot中,下面的tickformatter函数运行良好。它显示该值并正确使用该类 yaxis: { tickFormatter: function(v, axis) { return "<span class='axisLabel'>" + v + "%</span>"; } yaxis:{ tickFormatter:函数(v,轴){ 返回“+v+”%”; } 在最新版本(v.0.7)中,它按字面意思呈现标记,因
yaxis: {
tickFormatter: function(v, axis) {
return "<span class='axisLabel'>" + v + "%</span>";
}
yaxis:{
tickFormatter:函数(v,轴){
返回“+v+”%”;
}
在最新版本(v.0.7)中,它按字面意思呈现标记,因此在图形旁边我看到一个类似
50%
y轴刻度标签应该在哪里。我应该只看到一个百分比列表
我已经做了尽可能多的调试,但还没有找到导致这种情况的原因。如果有任何想法,我将不胜感激。函数格式化程序(val,axis){
function formatter(val, axis) {
return "<span style='font-weight: bold'>" + val / 1000000 + "m</span>";
}
var usersData = { color: "#00FF55", data: [[1, 900000], [2, 926000], [3, 959000], [4, 1056000], [5, 1242300]] };
$(document).ready(function() {
$.plot($("#UserGraph"), [usersData], { xaxis: { ticks: [] }, yaxis: { tickFormatter: formatter } });
});
返回“+val/1000000+m”;
}
var usersData={color:#00FF55],数据:[[190000],[2926000],[39599000],[41056000],[51242300]};
$(文档).ready(函数(){
$.plot($(“#UserGraph”),[usersData],{xaxis:{ticks:[]},yaxis:{tickFormatter:formatter}});
});
我可以删除样式,然后数字恢复为正常的非粗体数字。我认为这是由于最近标签处理方式的“改进”。在开发版本的README.md中:
轴标签现在使用画布文本绘制,并对其进行一些解析
支持换行。这解决了各种问题,但也意味着
不再支持HTML标记,可以作为DOM元素或
直接使用CSS设置样式
更具体地说,似乎
function insertAxisLabels() {...}
被替换为
function drawAxisLabels(){...}
在某些情况下。前者用于将轴标签作为一组
元素放置,如下所示:
<div class="tickLabels" style="font-size:smaller">
<div class="xAxis x1Axis" style="color:#545454">
<div class="tickLabel" style="position:absolute;text-align:center;left:-14px;top:284px;width:75px"><em>0</em></div>
[... div elements for other labels...]
</div>
</div>
因此,html格式标记不再有效。以前简单的事情,如设置记号标签的样式或将其转换为链接,现在变得不那么简单了。也许flot开发人员可以了解在新版本中实现相同功能的最佳方法
我主要在条形图上使用flot。一个(难看的)解决方法似乎对我有效,就是用稳定版本的insertAxisLabels函数(重命名为drawAxisLabels后)替换最新jquery.flot.js中的整个drawAxisLabels函数。此外,我还必须在绘图的xaxis选项中手动设置labelWidth,因为否则绘图的宽度计算不正确。回答得很好!如果轴标签重叠,这也是#1解决方案。请注意,画布文本在0.8的最终版本中是可选的;HTML文本仍然是默认值。
yaxis: {
tickFormatter: function(v, axis) {
return "<span class='axisLabel'>" + v + "%</span>";
}