#python #pandas #holoviews
#python #pandas #holoviews
Вопрос:
Я пытаюсь объединить 2 разных типа графиков. Оба графика имеют разные оси x и y, и так и должно быть. Я должен отправлять график только комбинированным способом. Ниже приведено то, что я пробовал и потерпел неудачу. Какие-либо обходные пути?
import holoviews as hv
import pandas as pd
height_sub = 500
width_sub = 400
linechart1 = hv.Curve([(1,2,'crust'), (3,4,'moon'), (4,9, 'mars')])
bubbled1 = hv.Curve([(10,'blue'), (78,'pink')])
linechart1.opts(
line_color='lightblue',
# size=10,
width=width_sub,
height=height_sub,
# color='lightblue',
# show_grid=True
)
bubbled1.opts(
line_color='black',
size=5,
width=width_sub,
height=height_sub,
color='blue',
# show_grid=True
)
bubbled1 linechart1
Но попал в стек ошибок
~.condaenvspyenvlibsite-packagesholoviewsutil__init__.py in _options_error(cls, opt, objtype, backend, valid_options)
415
416 if matches:
--> 417 raise ValueError('Unexpected option %r for %s type '
418 'across all extensions. Similar options '
419 'for current extension (%r) are: %s.' %
ValueError: Unexpected option 'size' for Curve type across all extensions. Similar options for current extension ('bokeh') are: ['fontsize'].
Возможно ли какое-либо обходное решение?
Ответ №1:
size
это не вариант стиля для hv.Curve
использования line_width
вместо этого, если вы хотите более толстые линии.
import holoviews as hv
hv.extension("bokeh")
height_sub = 500
width_sub = 400
linechart1 = hv.Curve([(1,2,'crust'), (3,4,'moon'), (4,9, 'mars')])
bubbled1 = hv.Curve([(10,'blue'), (78,'pink')])
linechart1.opts(
line_color='lightblue',
line_width=10,
width=width_sub,
height=height_sub,
invert_axes=True
)
bubbled1.opts(
line_color='black',
line_width=5,
width=width_sub,
height=height_sub,
color='blue',
)
layout = bubbled1 linechart1
layout.opts(shared_axes=False)
Комментарии:
1. На самом деле я не хочу смешивать x, y кривой с x, y диаграммы точек. Возможно ли строить графики с их собственными значениями отдельных осей?
2. Да! Просто укажите
shared_axes=False
наhv.Layout
объекте. Я обновил свой ответ, чтобы отразить это.3. Спасибо, брат. Это потрясающе.
4. Человек, похоже, согласен. Можете ли вы рассказать мне больше о том, что мы можем поменять местами оси x и y в holoviews?
5. Просто нужно передать
invert_axes=True
в качестве опции кривую, на которую вы хотели бы изменить оси. Я обновлю свой ответ примером.