Как установить 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)

Другие вопросы по тегам