首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当值太小时,高图表数据标记的位置需要更改。

当值太小时,高图表数据标记的位置需要更改。
EN

Stack Overflow用户
提问于 2012-09-19 00:41:26
回答 3查看 7.1K关注 0票数 2

数据标签(在本例中是现金)出现在正确的位置,大多数情况下就在右边的酒吧内。但是,如果条形图的值足够低,它就会与轴标签重叠(如紫色条所示)。

我的第一反应是设置一个最大值,并在此基础上更改数据标签的位置。比如,如果价值低于10美元,就把标签放在吧台的右边。但这种做法有一个大问题。图表的大小是可变的和响应性的,因此阈值需要是可变的。

理想情况下,应该测量杆本身,并将其与数据标签的宽度进行比较以确定位置。实现这一解决方案使我不知所措。我一直没有运气,得到的生理大小的酒吧高图表,或数据标记的问题。

先谢谢各位!

Jugal Thakkar在Android2.1设备上的解决方案更新

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-25 10:48:32

再次更新。将适用于所有支持.的设备。

我认为这个解决方案会满足你的需要。

票数 2
EN

Stack Overflow用户

发布于 2012-09-19 10:28:00

您可以在高图表中使用attr更改X和Y位置。

默认的数据标签是在条形图之外绘制的。因此,我想您应该在data Labels属性中设置X和Y位置。

你可以做这样的事

代码语言:javascript
复制
function(chartObj) {
    $.each(chartObj.series[0].data, function(i, point) {
        if(point.y <=10) {
            point.dataLabel.attr({x:point.dataLabel.x+30});
        }
    });

加载图表后,调用此方法。

这是供参考的琴杆

票数 4
EN

Stack Overflow用户

发布于 2012-09-25 13:13:59

你能试试这个吗

代码语言:javascript
复制
var alignDataLabels = function() {
    var chartObj = window.chart || this;
    $.each(chartObj.series[0].data, function(i, point) {
        var dataLabel = point.dataLabel;
        // Get the current X
        var x = dataLabel.translateX;
        var y = dataLabel.translateY;
        // If the goes on LHS of the axis
        if (x < 0) {
            // Set the label's X to 5 px more than the bar's height(length) in pixels
            dataLabel.translate(point.barH + 5, y);
        }
    });
};

jsFiddle @ http://jsfiddle.net/jugal/TCjJy/

android上的屏幕截图(Useragent:Android 4.1.1 AppleWebKit/534.30 (KHTML, like Gecko) )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12487054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档