plotly dash: как нарисовать ось y в разных тиках?

Например, я создаю скреттер, чтобы показать процентную разницу между реальным sale_count и моей моделью, предсказанной sale_count для некоторых продуктов:

введите здесь описание изображения

percentage_difference = (predict_value - real_value)/real_value

Большинство точек в основном находятся в диапазоне 0 ~ 1. (процент 0% ~ 100%) Как мы знаем, в данных всегда есть выбросы, некоторые из них могут превышать 10.

Итак, я хочу отобразить ось y графика в: [-10, -5, -1, 0, 1, 5, 10]

500% ~ 1000% with length 1
100% ~ 500% with length 2
0% ~ 100% with length 3
0% ~ -100% with length 3
-100% ~ -500% with length 2
-500% ~ -1000% with length 1

Но я не вижу примера в документации.


person Mithril    schedule 06.03.2019    source источник


Ответы (2)


Для ручного выбора осей

    layout = go.Layout(
    xaxis=dict(
        range=[2, 5]
    ),
    yaxis=dict(
        range=[2, 5]
    )
)

для получения дополнительной информации https://plot.ly/python/axes/#setting-the-range-of-axes-manually

person Bhawesh Chandola    schedule 06.03.2019
comment
Я не об этом спрашиваю. Вы устанавливаете диапазон 2 ~ 5 с определенной длиной 0,5 - person Mithril; 06.03.2019

Вам следует попробовать взглянуть на tickvals и ticktext. Думаю, они вам здесь помогут. tickvals укажите, сколько тиков вы хотите видеть в yaxis и ticktext задайте текст для каждого из тиков (для 0 установите для текста тика значение от percent_difference[0]).

Предлагаемый код для layout:

layout = dict(yaxis=dict(title="Percents values",
                         # Choose what you want to see on yaxis! In this case list
                         tickvals=[i for i in range(len(percentage_difference))],
                         ticktext=percentage_difference
                         )
              )
person Dmitriy Kisil    schedule 06.03.2019