我使用python-nvd3
在python中创建一个多栏图表。
问题是图表上只显示每隔一个X轴刻度/标签。
我生成的是python中的图表,然后将其传递给flask-template。
这个问题也在另一个SO帖子中描述,但解决方案是针对Angular的,并没有指出我可以在创建它之前将python中的属性传递给图表的方式。
解决方案建议设置属性.reduceXTicks(true)
但我的问题是我无法在python中看到设置此自定义属性的方法。
这就是图表的样子。
这是我生成图表的方式,以及下面的X轴和Y轴数据:
fchart = multiBarChart(name='f_multibarchart', width=1000, height=400, x_axis_format=None, color_category="category10")
xdata ['510', '125', '630', '625', '650', '1000', '805', '515', '610', '800']
ydata1 [0, 0, 0, 0, 1, 15, 0, 0, 0, 0]
ydata2 [1, 17, 23, 1, 29, 0, 0, 2, 0, 13]
fchart.add_serie(name="Full", y=ydata1, x=xdata)
fchart.add_serie(name="Low", y=ydata2, x=xdata)
欢迎任何帮助
答案 0 :(得分:2)
问题解决了!
为我设置reduceXTicks(false)
不起作用。
我发现缺少X刻度的不透明度设置为0
,所以我所做的就是使用add_chart_extras()
函数将不透明度推到1
所有刻度。
fchart = multiBarChart(name='f_multibarchart', width=1000, height=400, x_axis_format=None, color_category="category10")
extras = "d3.selectAll('#f_multibarchart text').style('opacity', '1');"
fchart.add_chart_extras(extras)