gpt4 book ai didi

javascript - 基于人力车月的X轴问题

转载 作者:行者123 更新时间:2023-11-28 01:26:08 26 4
gpt4 key购买 nike

我的图表工作得非常接近完美。我通过 PHP 获取其数据并返回 Rickshaw 的 JSON 数据,但有一个问题是我无法在图表上显示 12 月。

我需要显示全年的结果。因此,即使 12 月没有记录,我也需要将其显示为 0。

我正在做的事情的基本前提是这样的(我在实践中没有使用 strtotime)

array
(
"Jan"=>array
(
"timestamp"=>strtotime('01-01-'.$this->year),
"records"=>(array)timestamps
)
//do for all months
)

由此,该月的记录数就是该月记录数组的长度,我还有该月的确切时间戳。

然后,当我对这个数组进行 json_encode 时,我有一个 JS 对象,我可以对其进行迭代以正确创建 Rickshaw 系列,我将时间戳键作为其 x 轴值传递,并将 Records.length 作为其 y 轴值传递。

除了 12 月之外,这一切都运行良好。这是图表当前外观的图像

/image/qkzdq.png

我不明白的是,每隔一个月都按预期工作。如果其记录数组的长度为 0,则会将其绘制为 0。出于某种原因,并未选取 December。起初我以为这是时区差异,但这就是我实际上获取每个月时间戳的方式

protected function getUnixTime($date_string)
{
$date = new DateTime($date_string , new DateTimeZone('GMT'));
return $date->format("U");
}

并使用此工具检查所有时间戳http://www.epochconverter.com/他们看起来都是正确的。仅供引用,这是我如何设置 Rickshaw

var graph   =   new Rickshaw.Graph(
{
element:document.querySelector(scope.conf.chart_element),
width:scope.conf.chart_width,
height:scope.conf.chart_height,
renderer:scope.conf.chart_type,
series: scope.defaults.graph_series_data.reverse()
}),
time = new Rickshaw.Fixtures.Time(),
months = time.unit('months'),
x_axis = new Rickshaw.Graph.Axis.Time(
{
graph: graph,
timeUnit:months,
}),
y_axis = new Rickshaw.Graph.Axis.Y(
{
graph: graph,
orientation: 'left',
tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
element: document.getElementById('y_axis'),
}),

legend = new Rickshaw.Graph.Legend(
{
element: document.querySelector('#legend'),
graph: graph
});


graph.render();

任何帮助将不胜感激,这个让我难住了。

最佳答案

呃...是的,它实际上一直存在于图表中,只是需要在右侧进行一些填充来显示刻度字母。它始终是最简单的解决方案。

如果您遇到此问题,请尝试在图表右侧添加一些填充,例如

 padding:{top:0.01 , right:0.007 , bottom:0 , left:0}

这应该能解决问题。

关于javascript - 基于人力车月的X轴问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22651727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com