1

Ich versuche, eine Spalte zu chatten, mit Google charts mit den Zahlen auf der vertikalen Achse und Daten über die horizontale Achse. Aus irgendeinem Grund werden im Datumsformat die Stunden, Minuten oder Sekunden nicht gedruckt. Es funktioniert gut mit Jahr, Monat und Tag.Google Charts ColumnChart Datumsformat zeigt keine Minuten und Stunden

Ich bin mit dem Format "Md, HH: mm: ss" Diese Zeitstempel zu formatieren und drucken: "2017.07.15 20.10.30", sondern druckt es

7-17 , 00: 00: 00 statt 7-17, 20:10:30

Ist das ein Fehler oder habe ich etwas verpasst?

<html> 
    <head> 
    <script src="https://www.google.com/jsapi?ext.js"></script> 
    </head> 


    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> 
    <script type="text/javascript"> 
     google.charts.load("current", {packages:["corechart"]}); 
     google.charts.setOnLoadCallback(drawChart); 

     function drawChart() 
     { 

     var data = new google.visualization.DataTable(); 
     data.addColumn('date', 'Date'); 
     data.addColumn('number', 'Present'); 


     data.addRows([ 
      [new Date("2017-07-15 20:10:30"), 5] 
      ]); 

     var view = new google.visualization.DataView(data); 
     view.setColumns([0, 1, 
         { calc: "stringify", 
         sourceColumn: 1, 
         type: "string", 
         role: "annotation" 
         }]); 

     var options = { 
      width: 600, 
      height: 400, 
      //bar: {groupWidth: "95%"}, 
      legend: { position: "none" }, 
      vAxis: {title: 'Times occured'}, 
      hAxis: { 
       format: "M-d, HH:mm:ss", // <------- This shows: "7-17,00:00:00" not "7-17, 20:10:30" 
       //format: "HH:mm", 
       //format:'M-d H:mm', 

       title: 'Date', 
      }, 
     }; 
     var chart = new google.visualization.ColumnChart(document.getElementById("chart_div")); 
     chart.draw(view, options); 
     } 
    </script> 

<body class="chart"> 
    <div id="chart_div"></div> 
</body> 
</html> 

Antwort

2

sieht aus wie eine Art von Fehler,

empfehlen eine diskrete Achse (string) für Säulendiagramme mit ohnehin

Sie einen Datenformatierer verwenden könnte die x-Achse

konvertieren siehe folgendes Arbeits-Schnipsel ...

google.charts.load("current", { 
 
    callback: drawChart, 
 
    packages:["corechart"] 
 
}); 
 

 
function drawChart() { 
 
    var formatDate = new google.visualization.DateFormat({ 
 
    pattern: 'M-d, HH:mm:ss' 
 
    }); 
 

 
    var data = new google.visualization.DataTable(); 
 
    data.addColumn('date', 'Date'); 
 
    data.addColumn('number', 'Present'); 
 
    data.addRows([ 
 
    [new Date("2017-07-15 20:10:30"), 5] 
 
    ]); 
 
    
 
    var view = new google.visualization.DataView(data); 
 
    view.setColumns([{ 
 
    calc: function (dt, row) { 
 
     return formatDate.formatValue(dt.getValue(row, 0)) 
 
    }, 
 
    type: "string", 
 
    label: data.getColumnLabel(0) 
 
    }, 1, { 
 
    calc: "stringify", 
 
    sourceColumn: 1, 
 
    type: "string", 
 
    role: "annotation" 
 
    }]); 
 

 
    var options = { 
 
    width: 600, 
 
    height: 400, 
 
    legend: { position: "none" }, 
 
    vAxis: {title: 'Times occured'}, 
 
    hAxis: { 
 
     title: 'Date' 
 
    } 
 
    }; 
 
    var chart = new google.visualization.ColumnChart(document.getElementById("chart_div")); 
 
    chart.draw(view, options); 
 
}
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart_div"></div>

+0

hoffe, dass dies hilft - auch, keine alte Bibliothek -> 'https: //www.google.com/jsapi? Ext.js' – WhiteHat

+0

Danke das mein Problem zu lösen. Sollte dieses Problem irgendwo gemeldet werden? Ich habe persönlich nirgendwo einen Bericht über den "Fehler" gefunden. – RasmusGP

+0

Ich musste diesen DataView-Ansatz auch auf einem AreaChart anwenden. Muss ein Fehler sein. Das Formatieren der Datumsspalte in der DataTable und das Bereitstellen der Formatierung in den hAxis-Optionen hat nicht geholfen. – Perry

Verwandte Themen