使用Dash库时,我遇到了一个奇怪的行为,我在此道歉,因为我认为我无法举一个容易复制的示例,因此我将包含我认为的所有信息是相关的。
我试图创建一个小的仪表板,该仪表板加载一些数据,然后将其绘制在条形图中。我用于此目的的代码如下(从文档中改编而成):
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px
import pandas as pd
import os.path as path
def find_unique_id(data, first_name, second_name, season):
name = first_name + '_' + second_name
data_filt = data[data['season'] == season]
data_filt = data_filt[data_filt['name'] == name]
print(data_filt['unique_id'])
return data_filt['unique_id'].iloc[0]
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
# assume you have a "long-form" data frame
# see https://plotly.com/python/px-arguments/ for more options
path_data = path.join(path.dirname(path.dirname(path.abspath(__file__))), 'Processed', 'player_database.csv')
data = pd.read_csv(path_data)
unique_id = []
unique_id.append(find_unique_id(data, 'Harry', 'Kane', 2020))
unique_id.append(find_unique_id(data, 'Mohamed', 'Salah', 2020))
unique_id.append(find_unique_id(data, 'Heung-Min', 'Son', 2020))
fig = px.bar(data[data['unique_id'].isin(unique_id)], x="round", y="points_mean3", color="name", barmode="group")
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dcc.Graph(
id='example-graph',
figure=fig
)
])
if __name__ == '__main__':
app.run_server(debug=True)
已加载player_database.csv并在图片中进行了详细说明(请注意文件大小):
但是,现在无论什么时候,即使我导入任何与Dash相关的模块,即使是在不同的文件中,它也会更改此文件夹中的所有文件,并似乎将它们恢复为较早的状态。例如,当我运行以下代码时,您可以看到文件大小的变化:
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.express as px
这会更改此目录中的所有文件(再次显示为文件大小):
有人知道为什么会发生这种情况吗,Dash是否在某处获得了某种缓存来从以前的状态加载正在使用的文件?我已尝试使用Google搜索,但对此一无所获。
谢谢