Как установить nvd3 lineChart x-axis для использования строки
Я полный нуб, я хочу построить lineChart, используя оболочку Python nvd3
библиотека построена на вершине d3.js
, Я изучал x_axis_format
lineChart и желание использовать пользовательское форматирование, чтобы я мог использовать строки по оси X. NVD3
базовый класс из документации состояний create_x_axis(name, label=None, format=None, date=False, custom_format=False)
и из NVD3 / lineChart.py:
if kwargs.get('x_is_date', False):
self.set_date_flag(True)
self.create_x_axis('xAxis',
format=kwargs.get('x_axis_format', '%d %b %Y'),
date=True)
self.set_custom_tooltip_flag(True)
else:
if kwargs.get('x_axis_format') == 'AM_PM':
self.x_axis_format = format = 'AM_PM'
else:
format = kwargs.get('x_axis_format', 'r')
self.create_x_axis('xAxis', format=format,
custom_format=kwargs.get('x_custom_format', False))
Но когда я делаю это:
lineChart (name = "lineChart-With-Interactive-Guideline", высота =400, ширина =800, x_is_date=False, custom_format=False, use_interactive_guideline=True)
Я получаю пустую страницу, без диаграммы. Может кто-нибудь показать мне, как настроить мою ось X, чтобы разрешить строковые значения, такие как "2016-07-01", "2016-07-02"?
1 ответ
Вы должны использовать аргумент lineChart x_axis_format со строкой формата, например: x_axis_format='%d/%b/%Y'
После этого вам нужно установить значение chart.add_serie x в список временных меток, так как временная метка не в Unix Epoch, умножьте их на 1000:
xdata = [(datetime.timestamp(x+timedelta(days=1)))*1000 для x в df["date"]]
chart.add_serie(x=xdata)