豆瓣读书top250的书籍数据可视化分析Python全代码实现

一、条件

1.根据上一条文章中提取的数据(BookDouban250.csv

2.必要的库

import pandas as pd

import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.globals import ThemeType
from snownlp import SnowNLP
from pyecharts.charts import Pie,WordCloud, Page
from pyecharts.components import Table
from pyecharts.charts import EffectScatter

二、实现的目标

1.评价数分布柱形图

        根据评价人数的最小值和最大值来均匀分布。按分段离散化数据。通过np.linspace计算评价人数的边界,将其分为10个区间。使用pd.cut进行分段离散化,统计每个区间的图书数量,并使用渐变颜色增强可视效果。

def comment_cnt_bar() -> Bar:
    bar = Bar(
        init_opts=opts.InitOpts(theme=ThemeType.CHALK, width="800px", height="400px", chart_id='bar_cmt'))
    bar.add_xaxis(labels)
    bar.add_yaxis(
        "评价数",
        counts,
        itemstyle_opts=opts.ItemStyleOpts(
            color=color_range,
            opacity=0.8  # 设置透明度
        )
    )
    bar.set_global_opts(
        legend_opts=opts.LegendOpts(pos_left='right'),
        title_opts=opts.TitleOpts(title="评价数量区间分布-柱形图", pos_left='center'),
        toolbox_opts=opts.ToolboxOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(name="评论数", axislabel_opts=opts.LabelOpts(font_size=8)),
        yaxis_opts=opts.AxisOpts(
            name="图书数量",
            axislabel_opts={"rotate": 0},
            splitline_opts=opts.SplitLineOpts(is_show=True, linestyle_opts=opts.LineStyleOpts(type_='solid')),
        ),
    )
    bar.set_series_opts(
        markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max", name="最大值")], symbol_size=35)
    )
    return bar

2.评论情感分布饼图

        使用SnowNLP库对评论进行情感分析,根据情感分数将评论划分为积极、中性和消极三类,并通过PyEcharts的Pie类生成饼图展示评论情感的分布。在图表中,展示了积极、中性、消极三类评论的占比情况。

def emotion_pie() -> Pie:
    # 画饼图
    pie = (
        Pie(init_opts=opts.InitOpts(theme=ThemeType.CHALK, width="450px", height="350px", chart_id='pie1'))
        .add(
            series_name="评价情感分布",  # 系列名称
            data_pair=[
                ['积极', pos_count],
                ['中性', mid_count],
                ['消极', neg_count]
            ],
            rosetype="radius",  # 是否展示成南丁格尔图
            radius=["30%", "55%"],  # 扇区圆心角展现数据的百分比,半径展现数据的大小
            label_opts=opts.LabelOpts(formatter="{b}: {d}%"),  # 标签格式化,显示百分比
            itemstyle_opts=opts.ItemStyleOpts(border_width=2, border_color='white'),  # 扇形样式,增加边框
        )  # 加入数据
        .set_global_opts(  # 全局设置项
            title_opts=opts.TitleOpts(title="短评情感分布-饼图", pos_left='center'),  # 标题
            legend_opts=opts.LegendOpts(pos_left='right', orient='vertical')  # 图例设置项,靠右,竖向排列
        )
    )

    return pie

3.书籍名称词云图

        通过PyEcharts的WordCloud类生成词云图,展示书籍名称的词云分布。词云图中,文字大小表示出现频率,通过视觉效果形成图案,直观呈现了书籍名称的特征。

def book_name_wordcloud() -> WordCloud:
    wc = (
        WordCloud(init_opts=opts.InitOpts(width="450px", height="350px",
                                          theme=ThemeType.CHALK, chart_id='wc1'))
        .add(series_name="书籍名称",
             data_pair=[(word, 1) for word in text.split()],
             word_size_range=[15, 20],
             width='400px',  # 宽度
             height='300px',  # 高度
             word_gap=5  # 单词间隔
             )
        .set_global_opts(
            title_opts=opts.TitleOpts(pos_left='center',
                                      title="书籍名称分析-词云图",
                                      title_textstyle_opts=opts.TextStyleOpts(font_size=20)  # 设置标题
                             
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
随着科技的不断进步,我们的生活变得越来越离不开各种各样的程序。程序已成为我们日常生活和工作中不可或缺的一部分,它们可以帮助我们更高效地完成任务,节省时间和精力。今天,我要向大家介绍一款功能强大、用途广泛的程序,它具有万金油般的能力,可以为我们的生活带来极大的便利。 首先,这款程序具有非常强大的功能。它不仅可以帮助我们完成日常的文字处理、数据分析和报表制作等任务,还支持各种格式的文件读取和编辑。同时,它还具有多种工具和插件,可以扩展其功能,满足我们不同的需求。无论是工作还是生活,这款程序都能帮助我们轻松应对各种挑战。 其次,这款程序的界面设计非常友好。它的界面简洁明了,操作简单易懂,即使是不熟悉电脑操作的人也可以轻松上手。同时,它还支持自定义快捷键和界面主题,可以让我们根据自己的习惯和喜好进行个性化设置。 此外,这款程序还具有出色的稳定性和安性。它采用了先进的技术和算法,可以保护我们的文件和数据安。同时,它还支持自动备份和恢复功能,即使出现意外情况,也可以帮助我们快速恢复到之前的状态。 总之,这款程序就像生活中的万金油一样,具有广泛的应用场景和多种功能。它可以为我们的生活和工作带来便利和效率,帮助我们更好地应对各种挑战。如果您还在为处理各种任务而烦恼,不妨尝试一下这款程序,或许它会成为您的得力助手。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值