在 Dash Graph 中创建水平散点线

Creating a horizontal Scatter line in Dash Graph

我正在尝试从 DataFrame 创建水平线。 我的 DF 有一个时间戳索引和一个名为支持的列。对于 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')

这不是我想要的。

我想通了。基本上,我创建了一个新的 DataFrame,其中包含主要 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'))