import dash_html_components as html
from dash.exceptions import PreventUpdate
import plotly.express as px
import plotly.graph_objs as go
import pandas as pd

from app import app
from pos_tab import PosTab
from data_parser import DataParser

pos_tab = PosTab()
data_parser = DataParser()
df = data_parser.letters_to_df()
pos_counts = data_parser.get_pos_counts()
nn1_MF = data_parser.get_mfn_ratio()
tag_MF = data_parser.get_mfn_tag()

@app.callback(Output('pos_graph', 'figure'), 
            [Input('pos_dropdown', 'value')])
def display_pos_graphs(selected_values):

    if selected_values is None:
        raise PreventUpdate
    else:
        mask = pos_counts['Tags'].isin(selected_values)
        fig = px.line(
            data_frame=pos_counts[mask].groupby(['Tags', 'Year']).mean().reset_index(), 
            x="Year", 
            y="PosCountNorm", 
            range_y=[0,50],
            labels={