我正在尝试每月绘制一个带有单个数据点的图表。 我在每个月的第一天将这个发送到jqPlot作为单点:

$.jqplot('actualChart', [[['2011-10-01',0.296],['2011-11-01',0.682]]], {
    title: programSelection.options[programSelection.selectedIndex].text,
    axes: {
        xaxis: {
            renderer: $.jqplot.DateAxisRenderer,
            rendererOptions: { tickRenderer: $.jqplot.CanvasAxisTickRenderer },
            tickOptions: { formatString: '%b' }
        }
    }
}

我正在使用Ajax加载图表数据。 一些数据集具有比其他数据集更多的数据点 - 在上面的示例中仅有2个点,x轴刻度('%b'表示仅显示为10月和11月)沿着轴自动渲染,但是经常,例如,九月...十月...十月...十月...十月...十一月 - 沿着显示的线的常规点。 我只想在10月初开一个蜱,在11月初开一个蜱。

我花了很多时间搜索,似乎tickInterval是为此做的,但添加

tickInterval: '1 month'

只是让x轴,数据点和线条消失 - 这就是我所指的破碎功能! 指定任何其他间隔,例如

tickInterval: '2 days'

也打破了它。

解决方法是手动提供刻度,例如

ticks: ['2011-10-01','2011-11-01']

确实把蜱放在正确的位置,但是

a)是一个不应该被要求的麻烦,并且

b)在图形数据点的任一端丢失漂亮的填充,因此两端的点出现在图形的边缘。 当然,除非添加任何一方的手动滴答,但在上面的10月至11月示例中,我不想在任何一方提供整月,因为有趣的数据仅占用图的中间三分之一。

谁能帮我这个? 提前致谢。

编辑 - 找到一个解决方案:为轴提供min属性似乎确实解决了这个问题(无论出于何种原因...... bug?),所以除非有人有任何更好的想法,否则我会这样做!

===============>>#1 票数:14 已采纳

我找到了解决方案! 您需要将tickinterval指定为javascript时间戳。 所以假设你想要1个小时。 那将是1000 * 60 * 60 = 3600000(javascript时间戳以毫秒为单位)。

所以你会写:tickInterval:'3600000',

在这里工作。

===============>>#2 票数:8

tickInterval:'1 day'有效。 你可以试试:

xaxis: {
        renderer: $.jqplot.DateAxisRenderer,
        rendererOptions: { tickRenderer: $.jqplot.CanvasAxisTickRenderer },
        tickOptions: { formatString: '%b' },
        tickInterval: '1 day'
       }

===============>>#3 票数:6

既然我认为你无法回答你自己的问题(我遇到了同样的问题),我会将你的解决方案作为答案发布,因为它也解决了我的问题:

为轴提供min属性似乎解决了这个问题(无论出于何种原因...... bug?),所以除非有人有任何更好的想法,否则我会这样做!

===============>>#4 票数:1

我查看了jqplot.dateAxisRenderer.js,看起来需要调用reset函数才能设置this.tickInterval变量。 我隐约回想起你可以手动重置渲染器,但请注意,刻度间隔是以毫秒格式指定的(至少,我没有快速浏览任何翻译)。

我认为这只是一个错误。

在旁注中,我注释掉函数中唯一的min.getUtcOffset()调用,因为它引入了不需要的“漂移”(我想要本地时间),并导致图形在左侧被切断。

===============>>#5 票数:1

您应该在绘图数据上指定时间戳。 正如日期轴的jqplot示例所述:

请注意,虽然jqPlot将解析大多数人类可读日期,但最可能的情况是尽可能使用javascript时间戳。 此外,最好指定日期和时间,而不仅仅是日期。 这是由于本地时间与具有裸日期的UTC的浏览器处理不一致。

您可以在此处查看: http//www.jqplot.com/deploy/dist/examples/date-axes.html

我提到它是因为我2天前偶然发现了这个问题。 我通过传递时间戳并定义比'1天'更大的tickInterval来解决它。

  ask by Chris translate from so

未解决问题?本站智能推荐:

1回复

jqPlot中的tickInterval问题

我是jqplot的新手,但正在一个非常重要的项目上使用它。 我正在尝试让x轴每天有一个“刻度”-到目前为止,有多个。 这是屏幕截图: 下面是代码(其中我还添加了最小和最大为此篇简称 ): 即使我手动设置了以下点击次数: 标记与正确的日期不符。 这是屏幕截图:
2回复

Jqplot DateAxis渲染不正确

我尝试使用jqPlot及其DateAxisRenderer绘制每天的数据使用DateAxisRenderer ,数据是静态的以测试图形,但我发现图表上的点与网格上的确切日期不对应。 是否有更好的工具可以更准确地做到这一点? 我需要使用JavaScript在浏览器上渲染光照和交互式图形。
1回复

jqPlot DateAxisRenderer tickInterval问题

我正在使用jqPlot来说明一些时间序列数据。 同时,我有一个下拉菜单,用于控制x轴(时间轴)的刻度间隔。 滴答间隔可以动态更改,但最后一个滴答总是超出范围。 例如,我的x轴上限是Dec 1 1961 ,开始日期是Jan 2 1961 ,间隔是3 month 。 然后,轴上的最后一个
2回复

JQuery:JQPlot中的TickInterval

如何在x轴上为jqplot.CanvasAxisTickRenderer设置tickInterval? x轴标签是字符串。 我尝试下面的代码,但它不起作用。 请帮助,谢谢。
3回复

jqplot在IE7中不能很好地工作

有一系列问题与IE7中运行JavaScript的兼容性问题有关。 我正在使用jqplot生成数字,这在Chrome和IE8中运行良好,但在IE7中不起作用。 为了诊断,我只运行最简单的代码$.jqplot('chart1', s1) ,它在IE7中运行。 所以我认为问题在于所有选项(传
2回复

jqPlot到图像

我知道这里已经有这个问题了,但是我认为这个问题没有得到正确回答。 到目前为止,对于我必须完成的任何绘图,我都使用这种方法可以100%很好地工作。 请评论代码的效率等,我想知道其中是否还有错误。 非常感谢你。
1回复

jQplot可拖动

我在jQuery中使用jQplot并且我试图让这些点可以拖动。 jqplot通过jqplot.dragable插件提供此功能 我应该说我是jQplot的新手,但我确实正确地绘制了我的信息。 我认为我正在使用可拖动性选项 。 (使用该链接并找到'dragable:'来查看示例),但
2回复

jQplot统计

我有一个jQplot图表,我需要在X轴上放置month标签(Jan,Feb,Mar,Apr,May,Jun,Jul等)。 我尝试了一些教程中的示例,但是它们不起作用。 有人可以帮我吗? 这是我到目前为止所拥有的:
1回复

为什么jQPlot dateAxisRenderer无法正常工作?

我想使用jQPlot并将轴渲染为一系列日期值 - jQPlot的原始包可以是这里的字体: http://www.jqplot.com/ http://www.jqplot.com/docs/files/plugins/jqplot-dateAxisRenderer-js.html
2回复

JQPlot印刷

是否有任何正文都有一个简单的工作示例来打印JQPlot图。 我正在苦苦挣扎。 我需要在IE和Chrome中打印它,我甚至愿意使用基于浏览器检测的2种不同方法。 此外,我需要打印X和Y轴标签以及图表。 任何帮助将受到高度赞赏。 Ragards