【问题标题】:Cannot remove AM PM format from Google Chart date无法从 Google 图表日期中删除 AM PM 格式
【发布时间】:2020-11-05 01:14:32
【问题描述】:

我有这个 Google 图表,但我无法让下半部分(日期和时间所在的位置)显示从 00 到 23 的时间,它总是用 AM/PM 显示。 我的意思是始终可见的区域,出现在工具提示上的其他值的格式正常,但不是那个下部。 我做错了什么?

我尝试了dateformatter 代码(它似乎只影响工具提示日期值)。 通过这个(不做任何事情):

hAxis: {
    format: 'dd/MM/yyyy HH:mm',
    gridlines: {count: 15}
},

The jsfiddle

<script>
google.charts.load('current', {'packages':['line', 'corechart']});
      google.charts.setOnLoadCallback(drawChart);

    function drawChart() {

      var chartDiv = document.getElementById('chart_div');

      var data = new google.visualization.DataTable();
      data.addColumn('datetime');
      data.addColumn('number', "Temp");
      data.addColumn('number', "Humidity");

      data.addRows([

                     
             [new Date(2020, 11, 04, 15, 00), 25.50, 62.76],
                
             [new Date(2020, 11, 04, 15, 10), 25.58, 62.63],
                                                     
             [new Date(2020, 11, 04, 15, 20), 25.60, 62.47],
             
             [new Date(2020, 11, 04, 15, 30), 25.60, 62.38],
             
             [new Date(2020, 11, 04, 15, 40), 25.62, 62.16],
             
             [new Date(2020, 11, 04, 15, 50), 25.60, 62.00],
             
             [new Date(2020, 11, 04, 16, 00), 25.60, 61.79],
                                                     
             [new Date(2020, 11, 04, 16, 10), 25.77, 61.72],
             
             [new Date(2020, 11, 04, 16, 20), 25.97, 60.93],
             
             [new Date(2020, 11, 04, 16, 30), 26.07, 60.38],
        
      ]);

        // give date a certain format
        var dateFormatter = new google.visualization.DateFormat({pattern: 'dd/MM/yyyy HH:mm'});
        dateFormatter.format(data, 0);

      var materialOptions = {
    
        // trying to format date/time on lower line, not working :/
        hAxis: {
            format: 'dd/MM/yyyy HH:mm',
            gridlines: {count: 15}
        },
        

        legend: {position: 'none'},
        
        series: {
          // Gives each series an axis name that matches the Y-axis below.
          0: {axis: 'Temp'},
          1: {axis: 'Humidity'},
        },
        axes: {
          y: {
            Temp: {label: 'Temps (Celsius)', range: {max: 15, min: 40 }},
            Humidity: {label: 'Humidity (%)', /*range: {max: 30, min: 90 }*/},
          },
          
        },
        colors: ['#B00000', '#1bdec4']
      };

      function drawMaterialChart() {
        var materialChart = new google.charts.Line(chartDiv);
        materialChart.draw(data, materialOptions);
      }

      drawMaterialChart();

    }
</script>

【问题讨论】:

    标签: javascript charts google-visualization bar-chart


    【解决方案1】:

    绘制材质图时,
    需要使用静态方法转换选项 --> google.charts.Line.convertOptions

    materialChart.draw(data, google.charts.Line.convertOptions(materialOptions));
    

    这将确保正确包含支持的选项,
    请参阅以下工作 sn-p...

    google.charts.load('current', {
      'packages': ['line', 'corechart']
    });
    google.charts.setOnLoadCallback(drawChart);
    
    function drawChart() {
    
      var chartDiv = document.getElementById('chart_div');
    
      var data = new google.visualization.DataTable();
      data.addColumn('datetime');
      data.addColumn('number', "Temp");
      data.addColumn('number', "Humidity");
    
    
      data.addRows([
    
    
    
    
        [new Date(2020, 11, 04, 15, 00), 25.50, 62.76],
    
    
        [new Date(2020, 11, 04, 15, 10), 25.58, 62.63],
    
    
        [new Date(2020, 11, 04, 15, 20), 25.60, 62.47],
    
    
    
      ]);
    
      // give date a certain format
      var dateFormatter = new google.visualization.DateFormat({
        pattern: 'dd/MM/yyyy HH:mm'
      });
      dateFormatter.format(data, 0);
    
      var materialOptions = {
    
        // trying to format date/time on lower line, not working :/
        hAxis: {
          format: 'dd/MM/yyyy HH:mm',
          gridlines: {
            count: 15
          }
        },
    
    
        legend: {
          position: 'none'
        },
    
        series: {
          // Gives each series an axis name that matches the Y-axis below.
          0: {
            axis: 'Temp'
          },
          1: {
            axis: 'Humidity'
          },
        },
        axes: {
          y: {
            Temp: {
              label: 'Temps (Celsius)',
              range: {
                max: 15,
                min: 40
              }
            },
            Humidity: {
              label: 'Humidity (%)',
              range: {max: 30, min: 90 }
            },
          },
    
        },
        colors: ['#B00000', '#1bdec4']
      };
    
      function drawMaterialChart() {
        var materialChart = new google.charts.Line(chartDiv);
        materialChart.draw(data, google.charts.Line.convertOptions(materialOptions));
      }
    
      drawMaterialChart();
    
    }
     
    <html>
      <head>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
    
        <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
        
        
      </head>
      <body>
      
        <div id="chart_div" style="width: 100%; height: 500px;"></div>
    
    </body>
    </html>

    注意:材料图表不支持的几个选项,
    Tracking Issue for Material Chart Feature Parity

    【讨论】:

    • 我最初使用Material 方法,因为我认为它是一个更新的方法,但据我所知,它仍然是一种测试版并且没有很好的文档记录。谢谢。
    • 是的,不推荐使用素材,非常有限。就像他们被丢弃/取消一样。您可以使用经典选项 --> theme: 'material' -- 相似 外观...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 2017-07-21
    • 1970-01-01
    • 2021-02-17
    • 1970-01-01
    • 2010-09-26
    相关资源
    最近更新 更多