Вертикальная линия не показана на моем графике рассеяния HoloViews, потому что она находится вне x-диапазона моего графика рассеяния - PullRequest
0 голосов
/ 18 января 2020

У меня есть график рассеяния, и я хочу добавить к нему вертикальную линию в качестве маркера.

Однако график рассеяния имеет диапазон от 0 до 2, но моя вертикальная линия находится в диапазоне x 6, поэтому он выходит за пределы x-диапазона моего точечного графика и не отображается автоматически.

Что я могу сделать, чтобы моя вертикальная линия отображалась независимо от x-диапазонов моего графика?


Пример кода:

import holoviews as hv
hv.extension('bokeh')

# my vline is not shown automatically because it's
# outside the range of my hv.Curve()
hv.Curve([[0,3], [1,4], [2,5]]) * hv.VLine(6)


Пример графика (который не показывает Vline):

line plot without extra vertical line

1 Ответ

0 голосов
/ 18 января 2020

1) Конечно, вы можете изменить xlim вручную с помощью:
hv.VLine(4).opts(xlim=(0, 7))

2) используйте .opts (apply_ranges = True) без необходимости смотреть, каким должен быть диапазон по оси x:

curve = hv.Curve([[0,3], [1,4], [2,5]])

# use apply_ranges=True
vline = hv.VLine(4).opts(apply_ranges=True, line_width=10)

curve * vline

То же самое работает и для hv.VSpan () и hv.HLine ().

3) Используйте шипы hv.Spikes вместо вертикальных линий:
Преимущество из Спайков в том, что он также будет автоматически настраивать x-диапазон для вас.

curve = hv.Curve([[0,3], [1,4], [2,5]])

# use apply_ranges=True
spikes = hv.Spikes([4]).opts(
    spike_length=3.0, 
    line_width=5,
    line_dash='dashed',
)

curve * spikes



Результирующий график:

use .opts(apply_ranges=True) to change your xrange automatically



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...