我正在为一个项目写一些前端。在我的所有页面中,我都有一个导航栏。目前,我只是引用包含导航栏的另一个文件,而不是填满每个JSP / HTML文件开头的大块代码:
# converting into the long format
import pandas as pd
perf_df = (
pd.DataFrame({
'accuracy_train': model_perf['acc'],
'accuracy_validation': model_perf['val_acc'],
'loss_train': model_perf['loss'],
'loss_validation': model_perf['val_loss']
})
.stack()
.reset_index()
.rename(columns={
'level_0': 'epoch',
'level_1': 'variable',
0: 'value'
})
)
perf_df = pd.concat(
[
perf_df,
perf_df['variable']
.str
.extractall(r'(?P<metric>^.*)_(?P<set>.*$)')
.reset_index()[['metric','set']]
], axis=1
).drop(['variable'], axis=1)
perf_df.head() # result
epoch value metric set
0 0.434349 accuracy train
0 0.374607 accuracy validation
0 0.864698 loss train
0 0.007445 loss validation
1 0.553727 accuracy train
# plot it
fig = ff.create_facet_grid(
perf_df,
x='epoch',
y='value',
facet_row='metric',
color_name='set',
scales='free_y',
ggplot2=True
)
fig['layout'].update(
height=800,
width=1000,
yaxis1 = dict(tickformat=".0%"),
yaxis2 = dict(tickformat=".0%"),
title='Performance'
)
iplot(fig)
我有两个问题:
(1)我听说使用scriptlet很糟糕。如何用HTML或EL替换它?但更重要的是,
(2)每个页面都有轻微的变化,因为导航栏上的选定页面会有一个来自Bootstrap的class ='active'。有没有办法更改引用的文件,而不实际更改原始文件?
答案 0 :(得分:0)
我发现JSTL标记与上面的scriptlet完全相同但更好:
<jsp:include page="x.jsp"/>
这解决了我的第一个问题,但没有解决我的第二个问题。我将使用这个,直到发布另一个更好的答案。