ExtJS 在图表内显示字段名称

Posted

技术标签:

【中文标题】ExtJS 在图表内显示字段名称【英文标题】:ExtJS displaying field name inside chart 【发布时间】:2013-07-31 18:30:28 【问题描述】:

考虑以下堆积条形图的example。通过在系列中添加标签配置,我可以在条形图中显示每个字段(喜剧、动作、戏剧、惊悚片)的计数,但我还如何显示字段名称? label 的渲染器配置属性似乎没有多大用处,因为该函数仅接收计数作为参数。

label:
  display:'insideStart'  ,
  field:[null, null, 'drama', 'thriller'],
  renderer:function(item)
    //For this case, item will be an int value. Thus, not sure how useful it is 
    //as we cannot get the field name from it.
            

【问题讨论】:

【参考方案1】:

实际上,渲染器函数传递的是a lot more arguments 而不仅仅是值。这些参数与onPlaceLabel 方法相同,只是在开头添加了值,并且在此处进行了更好的记录。

我们得到了系列中字段的index,事实上,series 也可用于item 参数。有了它,我们就可以实现您想要的:

label: 
    display:'insideStart'
    ,field:[null, null, 'drama', 'thriller']
    ,renderer: function(value, label, storeItem, item, i, display, animate, index) 
        var series = item.series,
            titles = series.title;
        return titles && titles[index] || series.yField[index];
    

我首先尝试获取标题,因为在现实生活中,我不会向用户显示原始字段名称。为了记录,为了做到这一点,这是整个系列的配置方式。它不会出现在文档中,除了用户评论...

series: [
    type: 'bar',
    axis: 'bottom',
    gutter: 80,
    xField: 'year',
    yField: ['comedy', 'action', 'drama', 'thriller'],
    title: ['Comédie', 'Action', 'Drame', 'Thriller'],
    stacked: true,
    label: 
        display:'insideStart'
        ,field:[null, null, 'drama', 'thriller']
        ,renderer: function(value, label, storeItem, item, i, display, animate, index) 
            var series = item.series,
                titles = series.title;
            return titles && titles[index] || item.yField;
        
    
]

【讨论】:

渲染器函数中除值外的所有参数均未定义。 您确定您使用的是 Ext4.2 吗?

以上是关于ExtJS 在图表内显示字段名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在ExtJS Tabpanel中显示JSON表单字段?

如何删除 ExtJS 4 中字段的“名称”参数

如何使用 Extjs 动态改变柱形图的颜色?

怎么用gis做散点图显示样方

extjs4如何多次显示字段

ExtJs:无法在表单中显示字段