Python 时间序列数据的等x轴刻度
我有一个timeseries数据,我正试图从中使用nvd3构建stackedAreaChart。系列如下所示:Python 时间序列数据的等x轴刻度,python,nvd3.js,python-nvd3,Python,Nvd3.js,Python Nvd3,我有一个timeseries数据,我正试图从中使用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 = [1510873200000L, 1513465200000L, 15
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 = [1510873200000L,
1513465200000L,
1516143600000L,
1518822000000L,
1521241200000L,
1523916000000L]
我将扩展数据中的日期转换为unix格式,结果如下:
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 = [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 )
问题是我希望所有扩展数据都在x轴上显示为记号,或者至少在有更多数据的情况下对其进行自定义。
我得到的输出如下图所示
如您所见,日期的显示并不均等。我希望是2017年11月17日、2017年12月17日、2018年1月17日
我以前没有使用过js,但我尝试的一切都是不幸的。我试图添加额外的系列以更改x轴格式,但问题是,额外的系列是在构建绘图后添加的,并且效果不明显
我的猜测是,可靠解决这一问题的唯一方法是确保所有数据集的长度相等,并且它们都以完全相同的x轴值开始和结束,并且如果在其中一个数据集中定义了一个x轴值,那么它也在所有其他数据集中定义,数据集都是通过增加x轴值来排序的 由于我是nvd3的业余爱好者,很可能这种一致性水平是不必要的,但它可能不会使您的问题变得更糟。所以 方法是将x轴的值分配给扩展数据。 下面是我写的一个解决方案:
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)"""
datum
是js脚本在chart.htmlcontent
在我搜索python-nvd3的文档之前,这里没有关于赋值的文档,所以我必须用javascript手动完成。我希望这对某人有帮助