代码之家  ›  专栏  ›  技术社区  ›  machump

用周期对象更新边界范围

  •  0
  • machump  · 技术社区  · 7 年前

    line_src_yr

    Date Value
    2017 100
    2018 200
    

    以及第二个数据帧 dfQtr 比如:

    Date   Value
    2017Q1  25
    2017Q2  25
    2017Q3  25
    2017Q4  25
    2018Q1  100
    2018Q2  100
    

    我希望能够使用单选按钮在我的绘图下面的数据帧之间切换:

    QtrLineSrc=ColumnDataSource(data=dfQtr)
    line_src_yr=ColumnDataSource(data=line_df_yr)
    
    if radio_group.active==0:
        p_line.xaxis_type='datetime'             
        p_line.xaxis.formatter=DatetimeTickFormatter(days=["%Y"])
        line_src_yr.data={"Date":line_df_yr["Date"],"Value":line_df_yr['Value']}
    elif radio_group.active==1:
        line_src_yr.data=QtrLineSrc.data
        p_line.x_range=list(set(dfQtr["Date"]))
    
    radio_group=RadioGroup(labels=["Annual","Quarter"], active =0)
    radio_group.on_change('active', update)
    
    p_line=figure(plot_width= 750, plot_height=450)
    p_line.line(x="Date",y="Value", source=line_src_yr)
    

    但我明白了

    我怀疑是因为 dfQtr公司 不存在 datetime <class 'pandas._libs.tslibs.period.Period'> is not convertible to datetime

    1 回复  |  直到 7 年前
        1
  •  1
  •   bigreddot    5 年前

    支持大熊猫 Period 只是最近才在 Pull Request #8027 . 从今天起,这是更新的比任何完整版本的博凯。这项工作将是下一个版本的一部分,在2018年10月下旬。

    但是,仔细观察,您似乎也在尝试从列表中设置范围?

    p_line.x_range = list(set(dfQtr["Date"])) # not valid
    

    p_line.x_range.factors = [str(x) for x in set(dfQtr["Date"])]
    

    请注意,分类值只能是字符串。如果您使用的是分类范围,则可以通过转换 期间 如果使用一个范畴,那么就不清楚你想要达到什么目的。