我有一个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]
我将扩展数据中的日期转换为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 )
问题是我希望所有扩展数据都显示为x轴上的记号,或者至少在有更多数据的情况下对其进行自定义。 我得到的输出如下图所示。你知道吗
如您所见,日期的显示并不相同。我希望是2017年11月17日、2017年12月17日、2018年1月17日。。。你知道吗
我以前没有和js合作过,但是我尝试过的一切都是不幸的。我试图添加额外的系列来改变x轴格式,但问题是,额外的系列是在绘图后添加,效果是看不到的。你知道吗
我的猜测是,唯一可靠地解决这个问题的方法是确保所有数据集的长度相等,并且它们都以完全相同的x轴值开始和结束,如果某个x轴值在其中一个数据集中定义,那么它也在所有其他数据集中定义,数据集都是通过增加x轴值来排序的。你知道吗
因为我是一个nvd3的业余爱好者,这是很有可能的,这种水平的一致性是没有必要的,但它可能不会使你的问题更糟。你知道吗
所以here was posted the same problem.
方法是将x轴的值赋给扩展数据。 我写了一个解决方案:
datum
是在chart.htmlcontent
输出的js脚本中生成的数据变量在我搜索文档寻找
python-nvd3
之前,分配tickValues
没有文档记录,所以我必须用javascript手动完成。我希望这对别人有帮助。你知道吗相关问题 更多 >
编程相关推荐