LiveScatterPlot / app.py
ysharma's picture
ysharma HF staff
Update tooltip
3c2de58
import pandas as pd
import gradio as gr
URL = "https://docs.google.com/spreadsheets/d/1qFJ7N4yubNyq7BBvLiNFcgpyWFV66wDGCa48axGNp_c/edit?usp=sharing"
csv_url = URL.replace('/edit?usp=', '/export?format=csv&usp=')
def get_data():
df = pd.read_csv(csv_url)
df['Tweet Volume'] = df['Tweet Volume'].str[:-1]
df['Tweet Volume'] = df['Tweet Volume'].transform( lambda x: x[-2:] if 'Under' in x else x)
df['Trending Topic / Hashtag'] = df['Trending Topic / Hashtag'].transform( lambda x: x.split()[0])
df["Tweet Volume"] = pd.to_numeric(df["Tweet Volume"])
df = df.sort_values(by=['Tweet Volume'], ascending=False)
return df[["Trending Topic / Hashtag", "Tweet Volume"]][:15]
with gr.Blocks() as demo:
gr.Markdown("# πŸ“ˆ Twitter Trends - United States using Real-Time Line and Scatter Plot")
gr.Markdown("Following are the current top twitter trending topics in United States, Trends last updated every 30 minutes !")
with gr.Row():
gr.LinePlot(get_data, x="Trending Topic / Hashtag", y="Tweet Volume", tooltip=["Trending Topic / Hashtag","Tweet Volume"] , every=5, overlay_point=True, width=500, height=500, title='Real-Time Line Plot')
gr.ScatterPlot(get_data, y="Tweet Volume", x="Trending Topic / Hashtag", tooltip=["Trending Topic / Hashtag","Tweet Volume"] , every=5, width=500, height=500, title='Real-Time Scatter Plot')
with gr.Row():
gr.DataFrame(get_data, every=5)
demo.queue().launch() # Run the demo with queuing enabled