当前位置: 首页 > 知识库问答 >
问题:

分块破折号中两个下拉列表的相互连接

戚飞虎
2023-03-14

我一直在尝试将两个下拉列表相互连接,即,如果我从一个下拉列表中选择一个值,则路径和另一个下拉列表的内容应相应更改。e、 g我有一个日期文件夹(06-06-2020、07-06-2020和08-06-2020),因此如果我选择的日期为07-06-2020,则其下方的下拉列表应显示日期文件夹07-06-2020内的值。

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
from dash.exceptions import PreventUpdate
import plotly.graph_objects as go
import os
import pandas as pd
os.chdir(r"C:\Users\ankit\Desktop\dash_assign\SessionCode")
dir_route = os.getcwd()
app = dash.Dash(__name__)
g_t = ["OHLC Bars", "Candlesticks"]
# external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
# csv_list = [files for files in os.listdir(dir_route)]
csv_list = []
date_list = []
path_list = []
for dates in os.listdir(dir_route):
    date = dates
    date_list.append(date)

app.layout = html.Div(
    children=[
        html.H1("Time Series Graph"),
        dcc.Dropdown(id="select_date",
                    options=[{"label": dates, "value": str(dates)} for dates in date_list],
                     value=20180102,
                     style={
                         "margin": "10px"
                     }
        ),
        dcc.Dropdown(id="sym",
                     placeholder="Select Symbol",
                     style={
                         "margin": "10px"
                     }),
        # html.Button("PLOT", id='plot'),
        dcc.Graph(id='graph')
    ]
)


@app.callback(Output('sym', component_property="options"),
              [Input('select_date', 'value')])
def update_dates(dat):
    lst = os.listdir(os.path.join(dir_route, dat))
    for files in lst:
        if files.endswith(".csv"):
            files.split(" ")
            new_file = files[0]

    return new_file

@app.callback(Output('graph', 'figure'),
              [Input('select_date', 'value'),
               Input("sym", "options"),
               ])
def update_graph(date, symbols):
    path = os.path.join(dir_route, date, symbols)

    df = pd.read_csv(os.path.join(path+".csv"), index_col=False)
    fig = go.Figure(go.Ohlc(x =df["TimeStamp"],
                                 open=df['Open'],
                                 high=df['High'],
                                 low=df['Low'],
                                 close=df['Close'],
                                increasing_line_color='#00ff00',
                                decreasing_line_color='#ff0000',
                                name="Price",
                                ))
    return fig
if __name__ == "__main__":
    # fig = update_candle("A.csv")
    # fig.show()
    app.run_server(debug=True, port=5001)

这是我的根目录,在其中我有各种csv,一旦我选择了一个日期目录中的日期csv文件,它们就会出现在下拉列表中

共有1个答案

支淮晨
2023-03-14

您可以使用回调来更新第二个下拉列表。下面是从表中创建级联下拉列表的示例

@app.callback(
    Output(component_id='id_first_dropdown', component_property='options'),
    [Input(component_id='id_second_dropdown', component_property='value')]
)
def update_dp(filter_value):
    sql = "Select distinct second_dropdown_options from table where first_dropdown_value='" + filter_value + "'"
    df = pd.read_sql_query(sql, conn)
    df = df['second_dropdown_options']

    return [{'label': i, 'value': i} for i in df.unique()]
 类似资料:
  • 问题内容: 我有一个名称为dash的现有python模块foo-bar.py 我希望避免更改模块名称,因为该模块是共享的,我将不得不追踪所有使用该模块的位置,以便我的特殊情况能够起作用。 有没有办法加载名称包含通常被禁止的“-”的模块? (我确实知道这不是最佳实践。但是,在这种情况下,我宁愿不要重新设计和测试更多的应用程序。而且,我不认为我的公司老板会赞成我花时间实施这样的变化。) 问题答案: 您

  • 匹配以下条件的正确正则表达式是什么: 两个数字,用破折号(-)分隔 匹配的示例: 123-444 不应匹配的示例: 1234-567 123456-789012 这可能吗?

  • 我的谷歌表单使用了用户马克斯·马克洛夫(Max Makhrov)编写的代码,这里的代码,在D-F列(用于位置)和H-L列(用于目标)中创建多个相关的动态下拉列表 我想帮助修改脚本以完成两件事: 无论从第一列的下拉菜单中选择了什么活动,我都希望J-L列可以使用相同的下拉菜单选项(重复)。正如您所看到的,我找到了一种方法,但对我来说,它似乎笨重且不理想,并且为错误留下了太多的空间。用户不应该选择活动两

  • 我试图在这里创建一个描述和回答(用脚本)的依赖列表。 我想实现的是,如果从第1列的单元格中选择某个值(例如“First”),那么同一行下一个单元格中的下拉选项应提供不同表格中列的一系列值,这些列的标题与第一个左单元格中的值相同(即,第一个表格称为“Selector”)-其中有下拉列表,在第二张名为“KAT”的表格中,我有这些下拉列表的选项)。然后,根据行的每个第一个单元格的值,每一行都可以这样做。

  • 问题内容: 我要备份数据库时出现错误 有什么办法可以用表名(temp_01-01-000001)解决这个问题。 问题答案: 您可以编辑文件/system/database/drivers/mysql/mysql_utility.php的第132行 从: 至:

  • 问题内容: 我需要使用JavaScript根据下拉菜单A中的选择更改下拉菜单B的内容。没有涉及到数据库查询- 我事先知道应该在A中选择B的内容。我已经找到了一些使用AJAX的示例,但是由于没有涉及到数据库查询,所以没有必要。谁能为我指出一些示例代码以实现此目的? 问题答案: function configureDropDownLists(ddl1, ddl2) {