【问题标题】:Equal x-axis ticks for time series data时间序列数据的相等 x 轴刻度
【发布时间】:2018-05-18 08:41:15
【问题描述】:

我有一个时间序列数据,我正在尝试使用 nvd3 构建一个stackedAreaChart。系列看起来像这样:

xdata = ['2017-11-17', '2017-12-17', '2018-01-17', '2018-02-17', '2018-03-17', '2018-04-17']
ydata = [7277L, 9579L, 6291L, 6715L, 8743L, 9879L]

我将 xdata 中的日期转换为 unix 格式,它变成了这样:

xdata = [1510873200000L,
   1513465200000L,
   1516143600000L,
   1518822000000L,
   1521241200000L,
   1523916000000L]

然后我创建一个图表:

chart = stackedAreaChart(name='stackedAreaChart', 
                             height=400, 
                             width=400 
                             ,x_is_date=True
                            )
chart.add_serie(name = 'Chart1', y = ydata, x = xdata )

问题是我希望所有 xdata 都显示为 x 轴上的刻度,或者至少在有更多数据的情况下对其进行自定义。 我得到如下图所示的输出。

如您所见,日期的显示并不相同。我希望它是 2017 年 11 月 17 日、2017 年 12 月 17 日、2018 年 1 月 17 日...

我以前没有使用过 js,但是我尝试过的一切都很不幸。我试图添加额外的系列来改变x轴格式,但是我们的问题是在构建绘图后添加了额外的系列并且看不到效果。

【问题讨论】:

    标签: python nvd3.js python-nvd3


    【解决方案1】:

    我的猜测是,可靠地解决这个问题的唯一方法是确保所有数据集的长度相等,并且它们都以完全相同的 x 轴值开始和结束,并且如果 x-轴值定义在其中一个数据集中,它也在所有其他数据集中定义,并且数据集都是按x轴值递增排序的。

    由于我是 nvd3 的业余爱好者,很可能不需要这种级别的一致性,但它可能不会让您的问题变得更糟。

    【讨论】:

      【解决方案2】:

      所以here was posted the same problem.

      方法是将x轴的tickValues分配给xdata。 这是我写的一个解决方案:

      chart = stackedAreaChart(name='stackedAreaChart' 
                               ,height=500 
                               ,width=900 
                               #,x_is_date=True
                               ,use_interactive_guideline = True
                               ,margin_bottom = 120
                              )
      chart.create_x_axis(name = "xAxis", date = True,  format = '%b %Y' )
      chart.axislist['xAxis']['tickValues']="""Object.values(datum[0])[0].map(x => x.x)"""
      

      datumchart.htmlcontent输出中的js脚本生成的数据变量

      在我搜索 python-nvd3 的文档之前,但那里没有记录分配 tickValues,所以我不得不使用 javascript 手动完成。我希望这对某人有所帮助。

      【讨论】:

        猜你喜欢
        • 2020-05-03
        • 1970-01-01
        • 2012-10-15
        • 1970-01-01
        • 2020-10-12
        • 2020-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多