【问题标题】:How to reduce the distance between legends and chart on pentaho cde?如何减少pentaho cde上图例和图表之间的距离?
【发布时间】:2019-08-28 21:43:08
【问题描述】:

图例部分的大小/宽度似乎是固定的,所以当标签太长时,它们会被剪掉。

所以我想减少图例部分和图表之间的距离(因为在屏幕截图中,有足够的空间来显示长标签)。

尝试了饼图组件上几乎所有可用的选项,但仍然遇到这个问题:(

有人解决过同样的问题吗?

【问题讨论】:

  • 你试过图例属性legendOverflow、legendItemSize和legendSizeMax吗? legendOverflow 有一个值“collapse”作为“trim”的替代。
  • legendOverflow 必须选择 CLIP,否则标签太长时整个图例会消失。还尝试了 legendItemSize 和 SizeMax,但不是正确的。
  • LegendSizeMax:70% 应该为图例保留更多区域。我也将 Margins 和 Content Margins 设置为 0,但是当我在这里尝试时,它似乎对饼图没有太大作用。

标签: pentaho pentaho-cde


【解决方案1】:

我没有 100% 确定的解决方案给你,但这就是我能够为图例项目获得一些体面长度的方法:

边距:0

内容边距:0

这些减少了大多数图表类型中的死空白。

LegendSize:x% 设置图例的固定百分比。在您的示例中,70-80% 应该可以工作。

LegendSizeMax:x%如果您希望在项目很少时缩小图例大小,请改用这个。

LegendItemSize:y% 其中 y = 100 / 通常用于图例的列数。这会拉伸图例项的宽度。如果实时图表的列较少,您就会被空白空间困住,如果它有更多,您会丢失那些额外的项目。

这不太理想,但当您在典型使用中具有相似的项目计数时应该可以工作。解决此问题的更复杂方法是​​计算获取后的项目数,然后相应地设置这些属性。

Diethard Steiner 有一篇关于如何在代码中设置 CCC 图表属性的博客: http://diethardsteiner.github.io/ctools/2015/03/23/CDE-Global-CCC-Properties.html

如果您还没有,您可以使用那里的示例创建一个函数,在获取后更新图例项目的大小。

根据我的版本,这里是相关的属性名称:

function initGlobalCccProperties(dashboard, chartDefinition){
// get chart definition
// var cccOptions = this.chartDefinition;
var cccOptions = chartDefinition;
var myDashboard = dashboard; 

// standard ccc properties
var globalCccProperties = {
      legendAlign: "center"
    , legendItemSize: "50%"
    , legendOverflow: "collapse"
    , legendPosition: "bottom"
    , legendSizeMax: "80%"
    , legendFont: '14px "Helvetica Neue", Helvetica, Arial, sans-serif'
    , margins: 0
    , contentMargins: "0"
    , paddings: 10
};

【讨论】:

    猜你喜欢
    • 2014-07-02
    • 2020-03-09
    • 2021-11-27
    • 2020-06-06
    • 2020-01-11
    • 2013-06-28
    • 2017-12-04
    • 2018-09-10
    • 2021-01-23
    相关资源
    最近更新 更多