簡體   English   中英

AmCharts v4 折線圖,開始日期軸晚 1 個月

[英]AmCharts v4 linechart, starts dateaxis 1 month late

使用 amcharts 4 我正在顯示一個 xy 圖表(簡單的折線圖)。 每個數據點都在 chart.data 中設置了數據,第一個和以下間隔為 1 周:

{
   "Date": new Date(2015, 12, 31), 
   "Value: 12345,
   "LineColor: "#000000"
}, {
   "Date": new Date(2016, 01, 07), 
   "Value: 234567,
   "LineColor: "#000000"
}

盡管如此,圖表上顯示的第一個 dateAxis 點是(格式化后) Sun 31 Jan 2016 ,它不在輸入的日期中。

如果我將dateAxis.baseInterval更改為timeUnit: "week", count: 1我得到28 jan 2016 ,這是輸入日期之一,但從頂部開始timeUnit: "week", count: 1第 5 個。

我一直在尋找與此問題類似的問題,但這似乎不是一個常見的問題。 我是否錯過了一些強制 dateaxis 實際使用日期輸入的代碼?

抱歉缺少代碼示例,如果需要,我可以包含更多內容,但目前它在一台僻靜的機器上。

請注意,您的第一次約會不是 12 月。 JavaScript Date API 中的月份從 0 到 11,這解釋了為什么它被設置為一月而第二個日期是二月。

如果您希望軸有更多的粒度,請將 baseInterval 設置為一天而不是一周/七天:

dateAxis.baseInterval = {
  "timeUnit": "day",
  "count": 1
};

如果您只想顯示數據中的標簽,請將skipEmptyPeriods也設置為 true。

dateAxis.skipEmptyPeriods = true;

演示如下:

 var chart = am4core.create("chartdiv", am4charts.XYChart); chart.data = generateData(); var dateAxis = chart.xAxes.push(new am4charts.DateAxis()); dateAxis.renderer.grid.template.location = 0; dateAxis.renderer.minGridDistance = 50; dateAxis.baseInterval = { "timeUnit": "day", "count": 1 }; dateAxis.skipEmptyPeriods = true; var valueAxis = chart.yAxes.push(new am4charts.ValueAxis()); var series = chart.series.push(new am4charts.LineSeries()); series.dataFields.valueY = "value"; series.dataFields.dateX = "date"; series.tooltipText = "{dateX}: [b]{valueY}[/]"; series.strokeWidth = 2; function generateData() { var data = []; var firstDate = new Date(2015, 11, 31); var i; for (i = 0; i < 15; ++i) { var nextDate = new Date(firstDate); nextDate.setDate(nextDate.getDate() + (7 * i)); data.push({ "date": nextDate, "value": Math.floor(Math.random() * 100 + 1 * i) }); } return data; } chart.cursor = new am4charts.XYCursor();
 #chartdiv { width: 100%; height: 350px; }
 <script src="//www.amcharts.com/lib/4/core.js"></script> <script src="//www.amcharts.com/lib/4/charts.js"></script> <div id="chartdiv"></div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM