【问题标题】:Creating a horizontal Scatter line in Dash Graph在 Dash Graph 中创建水平散点线
【发布时间】:2019-07-26 13:29:38
【问题描述】:

我正在尝试从 DataFrame 创建水平线。 我的 DF 有一个时间戳索引和一个名为 support 的列。对于iterrows() 中的每一行:我想创建一条从timestamp(x) 和支持column(y)datetime.now() (x) 和相同支持列(y) 的水平直线。

我想我可以这样做:

import plotly.graph_objs as go

support_lines = []
for index, row in candles_df.iterrows():
    support_lines.append(go.Scatter(x=candles_df['timestamp'], y=row['support'], mode='lines', name='support'))

但是y 需要是一个元组或某种列表。我在想这会为每个时间范围 (x) 创建点并为 (y) 使用相同的值

这会创建一条非水平线:

resistance_lines = go.Scatter(x=candles_df['timestamp'], y=candles_df['resistance'], mode='lines', name='resistance')

这不是我想要的。

【问题讨论】:

    标签: python plotly plotly-dash


    【解决方案1】:

    我想通了。基本上,我创建了一个新的 DataFrame,其中包含主要的所有 datetimeindex 值,并将唯一的“y”值添加到每一行。然后将其传递给散点图。

        #Null Check
        if len(candles_df['resistance']) > 0:
            #Getting a unique value for y axis
            for item in np.nditer(candles_df['resistance'].unique()):
                #Add all rows to new DataFrame
                temp_df = pd.DataFrame(candles_df['timestamp'])
                #adding a column with a single value for every row
                temp_df['resistance'] = item
                #create the line 
                data.append(go.Scatter(x=temp_df['timestamp'],
                                       y=temp_df['resistance'],
                                       mode='lines',
                                       showlegend=False,
                                       name='resistance'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2015-05-02
      • 2021-12-28
      • 1970-01-01
      相关资源
      最近更新 更多