我正在尝试使用 hvplot 在同一个图上绘制 2 个时间序列,我在图的右侧创建了一个辅助 y 轴,但我的第二个时间序列仍在使用左侧 y 轴进行绘图。
例如,我的第一个时间序列的值范围从 0 到 100 万,因此主(左)y 轴代表该范围。
我的第二个时间序列的值范围从 0 到 100,并且使用主要 y 轴的范围进行绘制,因此它在图表上基本上是不可见的。
我希望我的第二个时间序列使用我的辅助(右)y 轴进行绘图。
这是我的代码:
import pandas as pd
import panel as pn
from bokeh.models import Range1d, LinearAxis
pn.extension()
pd.options.plotting.backend = 'hvplot'
opts.defaults(opts.Points(size=8, line_color='black'))
def plot_ts(media, target):
fig_1 = df[target].plot.line(title=target, label=target, color="red")
fig_2 = df[media].plot.area(title=media).opts(plot=dict(hooks=[twinx]),
style=dict(color="purple", alpha=0.5))
return fig_1 * fig_2
def twinx(plot, element):
# Setting the second y axis range name and range
start, end = (element.range(1))
label = element.dimensions()[1].pprint_label
plot.state.extra_y_ranges = {"foo": Range1d(start=start, end=end)}
# Adding the second axis to the plot.
linaxis = LinearAxis(axis_label=plot.title, y_range_name='foo')
plot.state.add_layout(linaxis, 'right')