Maison  >  Article  >  développement back-end  >  Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

Python当打之年
Python当打之年avant
2023-08-10 15:51:291614parcourir


本期为effc0f4ab6efa70b1851f6823d16a3cc系列文章下篇Contenu, [Partie 1] vous a présenté comment utiliser Python pour explorer régulièrement les données de la liste chaude Zhihu/les données de recherche chaude Weibo. Aujourd'hui vous présentera comment utiliser les pyecharts pour créer un graphique de séries chronologiques de données de liste chaude (carrousel dynamique). graphique) , j'espère que cela aide.

Voyons d'abord l'effet (différentes vitesses de lecture) :

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)


1. Chronogramme de base

Un exemple simple (données des joueurs NBA) :
names = ['詹姆斯', '杜兰特', '库里', '欧文', '哈登']
allinfo = [[[492, 610, 533, 416, 565, 639, 709, 465, 472], [387, 551, 488, 511, 514, 646, 747, 454, 636], [1683, 2036, 2089, 1743, 1920, 1954, 2251, 1505, 1544]], [[533, 527, 640, 598, 178, 589, 513, 464, 497], [214, 231, 374, 445, 110, 361, 300, 366, 457], [2161, 1850, 2280, 2593, 686, 2029, 1555, 1792, 2027]], [[88, 314, 334, 341, 430, 353, 261, 369, 26], [138, 539, 666, 619, 527, 524, 310, 361, 33], [383, 1786, 1873, 1900, 2375, 1999, 1346, 1881, 104]], [[191, 216, 259, 237, 157, 230, 227, 335, 103], [275, 350, 433, 389, 250, 418, 306, 464, 128], [944, 1325, 1478, 1628, 1041, 1816, 1466, 1596, 548]], [[252, 379, 344, 459, 501, 659, 389, 518, 387], [229, 455, 446, 565, 612, 907, 630, 586, 450], [1044, 2023, 1851, 2217, 2376, 2356, 2191, 2818, 2096]]]

Les données arrivent de Article précédent :

"King James" est en tête de la liste officielle des ventes de maillots de la NBA, jetez un œil au classement de votre idole

🎜

时序图代码:

y1 = []
y2 = []
y3 = []
for i in range(9):
    y_trb_sorce = []
    y_ast_sorce = []
    y_pts_sorce = []
    for j in range(5):
        y_trb_sorce.append(allinfo[j][0][i])
        y_ast_sorce.append(allinfo[j][1][i])
        y_pts_sorce.append(allinfo[j][2][i])
    y1.append(y_pts_sorce)
    y2.append(y_ast_sorce)
    y3.append(y_trb_sorce)

years = ['11-12赛季', '12-13赛季', '13-14赛季', '14-15赛季', '15-16赛季', '16-17赛季', '17-18赛季', '18-19赛季', '19-20赛季']
tl = Timeline()
for i in range(9):
    bar = (
        Bar()
            .add_xaxis(names)
            .add_yaxis('得分', y1[i])
            .add_yaxis('助攻', y2[i])
            .add_yaxis('篮板', y3[i])
            .set_global_opts(title_opts=opts.TitleOpts("{}三项数据".format(years[i])))
    )
    tl.add(bar, "{}".format(years[i]))
tl.render_notebook()
效果:
Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)


2. Graphique des séries chronologiques de recherche à chaud Weibo

2.1 Lecture des données

weibo_data = pd.read_csv('weibo_hot_datas.csv')
weibo_data.head()
结果:
Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

2.2 排名前15的热点 

代码:

tl = Timeline()
count = 50
time_data_counts = int(weibo_data.shape[0]/count)
times = weibo_data['时间'].values.tolist()
for i in range(time_data_counts):
    bar = (
        Bar()
            .add_xaxis(list(weibo_data['标题'])[i*count:i*count+15][::-1])
            .add_yaxis('微博热搜', list(weibo_data['热度'])[i*count:i*count+15][::-1])
            .reversal_axis()
            .set_global_opts(title_opts=opts.TitleOpts('{}'.format(times[i*count])))
    )
    tl.add(bar, "{}".format(times[i*count]))
tl.render_notebook()
效果:

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

2.3 调整边距 

代码:

# 将图形整体右移
grid = (
    Grid()
    .add(bar, grid_opts=opts.GridOpts(pos_left='30%', pos_right='10%')) 
)
tl.add(bar, "{}".format(times[i*count]))
tl.add(grid, '')
效果:

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

2.4 定制主题,增加图标,设置播放速度 

Effet :

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

3. 知乎热榜时序图

3.1 读取数据 
zhihu_data = pd.read_csv('zhuhu_hot_datas.csv')
zhihu_data.head()
结果:

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

3.2 Top 15 des Hotspots

Effet :

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

3.3 Les 15 derniers points chauds

Effet :

Crawler + Visualisation | Tableau de séquence de recherche chaude Python Zhihu/Weibo (Partie 2)

Ce numéro vise principalement à donner à vos amis une idée pour créer des chronogrammes. Il existe de nombreuses répétitions de code, donc le code de la liste chaude Zhihu n'est pas publié. Si vous en avez besoin, vous pouvez le lier ci-dessous. Voir le code (Partie 1 + Partie 2), vous pouvez également l'exécuter en ligne :

https://www.heywhale.com/mw/project/60dd1932ee16460017a49d57

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer