File size: 1,364 Bytes
df321c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e4c8a16
df321c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2f6de14
e4c8a16
df321c6
e4c8a16
df321c6
 
2f6de14
df321c6
 
 
 
 
 
 
 
 
2f6de14
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
import os
import pandas as pd
import plotly.express as px
import streamlit as st

OPTS = {
    "ACL 2022": "data/acl2022_spectre2-base.json",
    "ACL 2023": "data/acl2023_spectre2-base.json",
}


def load_df(data_file: os.PathLike):
    df = pd.read_json(data_file, orient="records")
    df["x"] = df["point2d"].apply(lambda x: x[0])
    df["y"] = df["point2d"].apply(lambda x: x[1])
    if "publication_type" in df.columns:
        df["type"] = df["publication_type"]
        df = df.drop(columns=["point2d", "publication_type"])
    else:
        df = df.drop(columns=["point2d"])
    return df


@st.cache_data
def load_dataframes():
    return {venue: load_df(df_file) for venue, df_file in OPTS.items()}

DFS = load_dataframes()

option = st.selectbox(
    'Please select a venue',
    ('ACL 2022', 'ACL 2023',)
)


external_stylesheets = ["https://codepen.io/chriddyp/pen/bWLwgP.css"]


fig = px.scatter(
    DFS[option],
    x="x",
    y="y",
    color="cluster",
    width=1200,
    height=750,
    hover_data=["title", "authors", "year", "source", "type"],
    color_continuous_scale="fall",
)
fig.update_layout(
    # margin=dict(l=10, r=10, t=10, b=10),
    showlegend=False,
    font=dict(
        family="Times New Roman",
        size=30,
    ),
)
fig.update_xaxes(title="")
fig.update_yaxes(title="")

st.plotly_chart(fig, use_container_width=True)