File size: 3,443 Bytes
565f995 21f995e 565f995 3bbd847 565f995 abc1e1a 565f995 abc1e1a 565f995 abc1e1a 565f995 8c06b18 565f995 abc1e1a 565f995 21f995e 565f995 21f995e b2caef0 565f995 21f995e 565f995 abc1e1a 565f995 8cbeb07 21f995e 8cbeb07 21f995e 8cbeb07 565f995 21f995e 565f995 21f995e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
import streamlit as st
import pandas as pd
import numpy as np
from streamlit_echarts import st_echarts
# from streamlit_echarts import JsCode
from streamlit_javascript import st_javascript
# from PIL import Image
from app.show_examples import *
links_dic = {}
links_dic = {k.lower().replace('_', '-') : v for k, v in links_dic.items()}
# huggingface_image = Image.open('style/huggingface.jpg')
def nav_to(value):
try:
url = links_dic[str(value).lower()]
js = f'window.open("{url}", "_blank").then(r => window.parent.location.href);'
st_javascript(js)
except:
pass
def draw(folder_name, category_name, dataset_name, metrics):
folder = f"./results/{metrics}/"
display_names = {
'SU': 'Speech Understanding',
'ASU': 'Audio Scene Understanding',
'VU': 'Voice Understanding'
}
data_path = f'{folder}/{category_name.lower()}.csv'
chart_data = pd.read_csv(data_path).round(2)
# if sorted == 'Ascending':
# ascend = True
# else:
# ascend = False
new_dataset_name = dataset_name.replace('-', '_').lower()
chart_data = chart_data[['Model', new_dataset_name]]
chart_data = chart_data.sort_values(by=[new_dataset_name], ascending=True).dropna(axis=0)
if len(chart_data) == 0:
return
min_value = round(chart_data.iloc[:, 1::].min().min() - 0.1, 1)
max_value = round(chart_data.iloc[:, 1::].max().max() + 0.1, 1)
options = {
"title": {"text": f"{display_names[folder_name.upper()]}"},
"tooltip": {
"trigger": "axis",
"axisPointer": {"type": "cross", "label": {"backgroundColor": "#6a7985"}},
"triggerOn": 'mousemove',
},
"legend": {"data": ['Overall Accuracy']},
"toolbox": {"feature": {"saveAsImage": {}}},
"grid": {"left": "3%", "right": "4%", "bottom": "3%", "containLabel": True},
"xAxis": [
{
"type": "category",
"boundaryGap": False,
"triggerEvent": True,
"data": chart_data['Model'].tolist(),
}
],
"yAxis": [{"type": "value",
"min": min_value,
"max": max_value,
# "splitNumber": 10
}],
"series": [{
"name": f"{dataset_name}",
"type": "line",
"data": chart_data[f'{new_dataset_name}'].tolist(),
}],
}
events = {
"click": "function(params) { return params.value }"
}
value = st_echarts(options=options, events=events, height="500px")
if value != None:
# print(value)
nav_to(value)
# if value != None:
# highlight_table_line(value)
'''
Show table
'''
# st.divider()
with st.expander('TABLE'):
# chart_data['Link'] = chart_data['Model'].map(links_dic)
st.dataframe(chart_data,
# column_config = {
# "Link": st.column_config.LinkColumn(
# display_text= st.image(huggingface_image)
# ),
# },
hide_index = True,
use_container_width=True)
'''
show samples
'''
show_examples(category_name, dataset_name, chart_data['Model'].tolist())
|