面板中的 Y 轴

问题描述 投票:0回答:0

我有一个像这样的

DataFrame
dft

    Date    Apple   Amazon  Facebook    US Bond
0   2018-01-02  NaN NaN NaN NaN
1   2018-01-03  NaN NaN NaN NaN
2   2018-01-04  NaN NaN NaN NaN
3   2018-01-05  NaN NaN NaN NaN
4   2018-01-08  NaN NaN NaN NaN
... ... ... ... ... ...
665 2020-08-24  0.708554    0.528557    0.152367    0.185932
666 2020-08-25  0.639243    0.534403    0.106550    0.133563
667 2020-08-26  0.520858    0.562482    0.018176    0.133283
668 2020-08-27  0.549531    0.593006    -0.011161   0.261187
669 2020-08-28  0.552725    0.595580    -0.038886   0.278847

更改日期类型

dft["Date"] = pd.to_datetime(dft["Date"]).dt.date

idf = dft.interactive()

date_from = datetime.date(yearStart, 1, 1)
date_to = datetime.date(yearEnd, 8, 31)

date_slider = pn.widgets.DateSlider(name="date", start = date_from, end = date_to, steps=1, value=date_from)

date_slider

我看到一个日期滑块。都好。更多控制:

tickerNames = ['Apple', 'Amazon', 'Facebook', 'US Bond']

# Radio buttons for metric measures
yaxis = pn.widgets.RadioButtonGroup(
    name='Y axis', 
    options=tickerNames,
    button_type='success'
)

pipeline = (
    idf[
        (idf.Date <= date_slider)
    ]
    .groupby(['Date'])[yaxis].mean()
    .to_frame()
    .reset_index()
    .sort_values(by='Date')  
    .reset_index(drop=True)
)

如果我现在打字

pipeline

我看到一个

table
上面有一个
date slider
,其中每个
symbol
都是它自己的“标签”。如果我单击该符号并更改滑块,我会看到更多/更少的数据。一切都很好。这是我感到困惑的地方。我想绘制列的值:

plot = pipeline.hvplot(x = 'Date', by='WHAT GOES IN HERE', y=yaxis,line_width=2, title="Prices")


NOTE: WHAT GOES IN HERE. I need the values in the `dtf` dataframe above, but I can't hardwire the symbol since it depends on what the user chooses in the `table`?  I want an interactive chart, so that as I slide the date_slider, all more and more of the data for each symbol gets plotted.

如果我用老式的方式做:

fig = plt.figure(figsize=(15, 7))
ax1 = fig.add_subplot(1, 1, 1)
dft.plot(ax=ax1)
ax1.set_xlabel('Date')
ax1.set_ylabel('21days rolling daily change')
ax1.set_title('21days rolling daily change of financial assets')
plt.show()

它按预期工作吗?

pandas panel hvplot
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.