【发布时间】:2011-04-06 08:10:23
【问题描述】:
有谁知道如何在 Flot 中设置轴的标签或标题?
我已经阅读了 API,但它似乎没有那个功能......
谢谢:)
【问题讨论】:
标签: javascript flot
有谁知道如何在 Flot 中设置轴的标签或标题?
我已经阅读了 API,但它似乎没有那个功能......
谢谢:)
【问题讨论】:
标签: javascript flot
没有内置的浮动。
最好的办法是通过定位的 div 自己做,但如果你喜欢冒险,你可以看看 issue(或原来的 issue),看看其他人是如何处理它的。
具体来说,最近有两个人对flot做了标签相关的修改:
https://github.com/RuiPereira/flot/raw/axislabels/jquery.flot.axislabels.js
【讨论】:
无耻自插:我修复并大大扩展了玄罗的flot-axislabels插件:http://github.com/markrcote/flot-axislabels/据我所知,是目前轴标签最好的解决方案。
【讨论】:
我正在使用这个解决方法:
yaxis: {
tickFormatter: function(val, axis) { return val < axis.max ? val.toFixed(2) : "CZK/l";}
}
很简单,将Y轴上的最大值替换为自定义字符串。我没有在 X 轴上进行过测试,但我看不出它为什么不能工作。
【讨论】:
11.5000000004。不是很吸引人。
我看到一个非常有效的建议是将图表放在 3x3 表格的中间。然后可以将标签放在其他单元格中。
<table style="text-align:center">
<tr>
<td></td>
<td>Plot Title Goes Here</td>
<td> </td>
</tr>
<tr>
<td>Y Axis Label</td>
<td>
<div id="graph here" style="width:600px;height:300px"></div>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>X Axis Label Goes Here</td>
<td></td>
</tr>
</table>
【讨论】:
使用纯 css 解决的 2dims 图(x 和 y 轴)示例。
Y轴:
#placeholder:after {
content: 'Speed';
position: absolute;
top: 50%;
left: -50px;
font-weight: 600;
/* Safari */
-webkit-transform: rotate(-90deg);
/* Firefox */
-moz-transform: rotate(-90deg);
/* IE */
-ms-transform: rotate(-90deg);
/* Opera */
-o-transform: rotate(-90deg);
/* Internet Explorer */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
X 轴:
#placeholder:before {
content: 'Time';
position: absolute;
bottom: -30px;
left: 50%;
font-weight: 600;
}
【讨论】:
jqPlot 对此提供支持,以防您可以使用替代方法
这个修复了使用多个轴的问题,并且偏移量也很好......https://github.com/mikeslim7/flot-axislabels
【讨论】:
$("<div class='axisLabel yaxisLabel'></div>")
.text("Pressure")
.appendTo($("#yl_1"));
这也可以。
【讨论】:
我使用 szpapas 的想法。
我在它下面添加了更多的 jquery 代码来覆盖这样的 x 轴。
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(1)').html("Berhad")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(2)').html("")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(3)').html("Sdn Bhd")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(4)').html("")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(5)').html("Enterprise")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(6)').html("")
$('div.flot-x-axis div.flot-tick-label.tickLabel:nth-child(7)').html("Koperasi")
【讨论】: