You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.4 KiB

10 months ago
# -*- coding: gbk -*-
import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Pie, Bar, Timeline
df = pd.read_csv('changsha<EFBFBD><EFBFBD><EFBFBD><EFBFBD>.csv', encoding='gbk')
df['<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'] = df['<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'].apply(lambda x: pd.to_datetime(x))
df['month'] = df['<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'].dt.month
df_agg = df.groupby(['month', '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD>']).size().reset_index()
df_agg.columns = ['month', 'fengsu', 'count']
print(df_agg[df_agg['month'] == 1][['fengsu', 'count']] \
.sort_values(by='count', ascending=False).values.tolist())
<><CAB5><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>еĶ<D0B5><C4B6><EFBFBD>
timeline = Timeline()
#<23><><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD>:<3A><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1s <20><>λ<EFBFBD>ǣ<EFBFBD>ms(<28><><EFBFBD><EFBFBD>)
timeline.add_schema(play_interval=1000)
<><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>df_agg['month']<5D><><EFBFBD><EFBFBD>Ψһֵ
for month in df_agg['month'].unique():
data = (
df_agg[df_agg['month'] == month][['fengsu', 'count']]
.sort_values(by='count', ascending=True)
.values.tolist()
)
bar = Bar()
# x<><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bar.add_xaxis([x[0] for x in data])
# y<><79><EFBFBD>Ǹ<EFBFBD><C7B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>
bar.add_yaxis('<EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', [x[1] for x in data])
# <20><><EFBFBD><EFBFBD>״ͼ<D7B4><CDBC><EFBFBD>ŷ<EFBFBD>
bar.reversal_axis()
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǩ<EFBFBD><C7A9><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ұ<EFBFBD>
bar.set_series_opts(label_opts=opts.LabelOpts(position='right'))
# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bar.set_global_opts(title_opts=opts.TitleOpts(title='<EFBFBD><EFBFBD>ɳ2023<EFBFBD><EFBFBD>ÿ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'))
# <20><><EFBFBD><EFBFBD><EFBFBD>úõ<C3BA>bar<61><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ֲ<EFBFBD>ͼ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ұ<EFBFBD>ǩѡ<C7A9><D1A1><EFBFBD>·<EFBFBD> <20><>ʽΪ<CABD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
timeline.add(bar, f'{month}<EFBFBD><EFBFBD>')
timeline.render('<EFBFBD><EFBFBD>ɳ<EFBFBD><EFBFBD><EFBFBD>ٷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD>ͼ.html')