如何控制flot中的刻度标签大小

问题描述 投票:0回答:5

我有一个在 flot 中呈现的基本条形图(5 个条形图,显示每种状态的百分比)。

$.plot($("#placeholder"), [
    {
        label: 'Failed',
        data: [[0,10]],
        bars: { show: true }
    },
    {
        label: 'Passed',
        data: [[1,15]],
        bars: { show: true }
    },
    {
        label: 'Not Run',
        data: [[2,30]],
        bars: { show: true }
    },
    {
        label: 'Blocked',
        data: [[3,5]],
        bars: { show: true }
    },
    {
        label: 'In Progress',
        data: [[4,40]],
        bars: { show: true }
    }
],
{
    xaxis: {
        ticks: [[0.5, "Failed"], [1.5, "Passed"], [2.5, "Not Run"], [3.5, "Blocked"], [4.5, "In Progress"]]
    },
    legend: {
        show: false
    }
});

我发现用于 x 轴上刻度值的字体有点太大,特别是当图表以小尺寸显示时,即。 240x100。 我已阅读 API 文档,但找不到如何控制刻度标签大小。

这可能是 OOTB 吗?

flot graphing
5个回答
17
投票

似乎不能通过 API 设置字体大小,但可以使用 css 来设置刻度标签的大小。

.tickLabel { font-size: 80% }

12
投票

这是直接来自 API 的示例:

xaxis:{
   font:{
      size:11,
      style:"italic",
      weight:"bold",
      family:"sans-serif",
      variant:"small-caps"
   }
}

http://flot.googlecode.com/svn/trunk/API.txt


6
投票

以上两个答案不适用于最新版本的 flot,因为它们不再使用“真实”文本(而是绘制文本)。相反,指定这些选项:

{xaxis: {font: size: some_number}, yaxis: {font: size: some_number}}

(将

some_number
替换为所需的磅大小)


1
投票

我使用了以下内容:

CSS 文件/SCSS 文件

#graph_label .tickLabel{

     font-size: 50%;
  }

Index.html 或绘制图形区域的位置

$.plot($("graph_label"), [dataArrayReference], options);

参考:@BrentM 的上述答案

PS:我使用的是 0.8.1 之前的 Flot 版本,所以我不知道最新版本如何工作


0
投票

这个解决方案适用于我的新版本的 flot。 在 yaxis 属性中,定义以下

tickFormatter()
函数:

yaxis : {
 ... 
    
    tickFormatter = function (val, axis) {
        var label = val.toFixed(axis.tickDecimals);
        if (minorTicks.includes(val)) {
            return '<span class="minor-tick">' + label + '</span>';
        } else {
            return label;
        }
    };
}

然后在 CSS 中添加以下内容:

.flot-y-axis .flot-tick-label span.minor-tick {
    font-size: smaller;
    color: gray; 
}
© www.soinside.com 2019 - 2024. All rights reserved.