【问题标题】:Horizontal axis labels are not using 100% width (Google Charts)水平轴标签未使用 100% 宽度(谷歌图表)
【发布时间】:2020-01-11 08:55:35
【问题描述】:

这是使用one of the Google Charts demos 渲染的图表。我的实际用例与此非常相似,一个带有整数标签的垂直轴和一个带有字符串标签的水平轴。

小提琴:https://jsfiddle.net/1f0dvehq/

X 轴的标签从 0,0 的任意距离开始。我需要这些红线和蓝线从X=0 开始,并让第一个X 轴标签移动,使其位于0,0 下方,如下面的屏幕截图所示:

我尝试通过hAxisminValue 选项传递给水平轴,但这似乎不适用于字符串,就像它处理整数一样。

以下选项正在传递给小提琴图表(同样,来自演示代码):

var options = {
  title: 'Company Performance',
  curveType: 'function',
  legend: { position: 'bottom' }
};

如何对齐 X 轴标签,使它们占据图表宽度的 100%,而第一个标签位于 Y 轴下方?我想在图表中完成此操作如果可能,配置本身,而不是 CSS 或无关的 JS。

如果有人也可以解释此设置的逻辑,将不胜感激。它是默认设置让我感到奇怪,根据我对谷歌框架的经验,他们通常会选择符合约定的默认值,但这似乎很荒谬。我希望“2004”标签在 X 轴上左对齐,并且 X 标签之间的间隔均匀分布,“2007”与图表的右边缘齐平。

【问题讨论】:

    标签: charts google-visualization


    【解决方案1】:

    无法解释原因,但这是discrete axis 的默认行为。

    如果您想在 x 轴上显示字符串,
    但仍然具有连续轴的行为,
    您可以使用ticks 选项来格式化轴标签。

    使用对象表示法,您可以提供每个刻度的值 (v:),
    以及格式化的值(f:)...

    {v: 0, f: '2004'}
    

    请参阅以下工作 sn-p...

    google.charts.load('current', {
      packages: ['corechart']
    }).then(function () {
      var data = google.visualization.arrayToDataTable([
        ['Year', 'Sales', 'Expenses'],
        [0, 1000, 400],
        [1, 1170, 460],
        [2, 660,  1120],
        [3, 1030, 540]
      ]);
    
      var options = {
        title: 'Company Performance',
        curveType: 'function',
        legend: {position: 'bottom'},
        hAxis: {
          ticks: [
            {v: 0, f: '2004'},
            {v: 1, f: '2005'},
            {v: 2, f: '2006'},
            {v: 3, f: '2007'}
          ]
        }
      };
    
      var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
      chart.draw(data, options);
    });
    <script src="https://www.gstatic.com/charts/loader.js"></script>
    <div id="curve_chart"></div>

    【讨论】:

    • 这绝对有帮助,谢谢!理想情况下,只有一个可切换的设置来启用此行为(带有微调它的选项),但这似乎是启用我想要的行为的正确方法。
    • 顺便提一下,使用此方法会强制 Google(同样,默认情况下)在构建工具提示时使用为 Year 提供的数字键。因此,当您将鼠标悬停在“2005”的刻度上时,它会显示“1”而不是工具提示中的年份值。有手动的方法来解决这个问题,但这只是一个不方便的机制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    相关资源
    最近更新 更多