from pyecharts.charts import Bar
from pyecharts import options as opts
from selenium import webdriver
import pandas as pd
from sqlalchemy import create_engine
user = 'root'
password = '123456'
host = '192.168.1.191'
port = 3309
database = 'aminer'
engine = create_engine(f'mysql+pymysql://{user}:{password}@{host}:{port}/{database}')
df = pd.read_sql("SELECT id,title,releasetime FROM crawler_feachdata", con=engine)
#print(df.head())
#df_2024 = df[df['releasetime'].dt.year == 2024]
df['year'] = df['releasetime'].dt.year
df['month'] = df['releasetime'].dt.month
#monthly_count = df.groupby(df['releasetime'].dt.month).size()
monthly_count = df.groupby(['year','month']).size().reset_index(name='count')
monthly_count = df.groupby(['year','month']).size().reset_index(name='count')
monthly_count['year_month'] = monthly_count.apply(
lambda row: f"{int(row['year'])}-{int(row['month']):02d}", axis=1
)
if __name__=="__main__":
bar=Bar()
bar.add_xaxis(monthly_count['year_month'].tolist())
bar.add_yaxis('发文量',monthly_count['count'].tolist())
bar.set_global_opts(title_opts=opts.TitleOpts(title='2024年发文量'),datazoom_opts=[opts.DataZoomOpts()])#xaxis_opts=opts.AxisOpts(type_="time")
bar.render("bar_char.html")
d=webdriver.Firefox()
d.get('file:///C:/Users/cdg19/Desktop/1%20(2)/bar_char.html')